int main(int argc, char* argv[]) { ConfigXML cfg = set_parameters("SingleSampleCCE.xml"); string log_file = LOG_PATH + cfg.getStringParameter("Data", "log_file"); _START_EASYLOGGINGPP(argc, argv); easyloggingpp::Configurations confFromFile(log_file.c_str()); easyloggingpp::Loggers::reconfigureAllLoggers(confFromFile); int worker_num(0), my_rank(0); int mpi_status = MPI_Init(&argc, &argv); assert (mpi_status == MPI_SUCCESS); MPI_Comm_size(MPI_COMM_WORLD, &worker_num); MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); LOG(INFO) << "my_rank = " << my_rank << " vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Program begins vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"; // create defect center NVCenter nv = create_defect_center(cfg); // CCE SingleSampleCCE sol(my_rank, worker_num, &nv, cfg); sol.run(); LOG(INFO) << "my_rank = " << my_rank << " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Program ends ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"; mpi_status = MPI_Finalize(); assert (mpi_status == MPI_SUCCESS); }
int main(int argc, char* argv[]) { po::variables_map para = ParseCommandLineOptions(argc, argv); //////////////////////////////////////////////////////////////////////////////// //{{{ MPI Preparation int worker_num(0), my_rank(0); int mpi_status = MPI_Init(&argc, &argv); assert (mpi_status == MPI_SUCCESS); MPI_Comm_size(MPI_COMM_WORLD, &worker_num); MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); //}}} //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //{{{ LOGGING string log_file = LOG_PATH + para["logfile"].as<string>(); _START_EASYLOGGINGPP(argc, argv); easyloggingpp::Configurations confFromFile(log_file.c_str()); easyloggingpp::Loggers::reconfigureAllLoggers(confFromFile); //}}} //////////////////////////////////////////////////////////////////////////////// LOG(INFO) << "my_rank = " << my_rank << " vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Program begins vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv"; EnsembleCCE sol(my_rank, worker_num, para); // Step 1: make a defect center NVCenter nv = create_defect_center(para); sol.set_defect_center(&nv); // Step 2: make bath spins cSpinSourceUniformRandom spinUR = create_spin_source(para); sol.set_bath_spin(&spinUR); // Step 3: make clusters cSpinCollection bath_spins = sol.getSpinCollecion(); cDepthFirstPathTracing dfpt = create_spin_cluster_algrithm(para, bath_spins); sol.set_bath_cluster(&dfpt); // Step 4: run_each_cluster sol.run_each_clusters(); // Step 5: post_treatment sol.post_treatment(); LOG(INFO) << "my_rank = " << my_rank << " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Program ends ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"; //////////////////////////////////////////////////////////////////////////////// //{{{ MPI Finializing mpi_status = MPI_Finalize(); assert (mpi_status == MPI_SUCCESS); //}}} //////////////////////////////////////////////////////////////////////////////// }