Exemplo n.º 1
0
void *run_thread(void *arg)
{
  ThreadData *thread_data = static_cast<ThreadData *>(arg);
  int rank = thread_data->rank;
  int size = thread_data->size;

  Xyce::Util::xyce_pthread_t self = Xyce::Util::xyce_pthread_self();

  std::ostringstream path;
  path << "log." << rank << "." << size;

  std::ofstream log_os(path.str().c_str());
  log_os << "Logging started on thread rank " << rank << " of " << size << " on thread " << (void *)(self) << std::endl;
  for (int i = 0; i < 1000; ++i) {
    if (i%10 == 2)
      Xyce::addThreadStream(&log_os);

    if (i%10 == 9)
      Xyce::removeThreadStream(&log_os);

    Xyce::lout() << "This is step " << i << " on thread rank " << rank << " of " << size << " on thread " << self << std::endl;
  }

  Xyce::removeThreadStream(&log_os);
  log_os << "Logging complete on thread rank " << rank << " of " << size << " on thread " << self << std::endl;
  log_os.close();

  return 0;
}
Exemplo n.º 2
0
void log_system_info(void)
{
	log_processor_name();
	log_processor_speed();
	log_processor_cores();
	log_available_memory();
	log_os();
	log_kernel_version();
}