Exemplo n.º 1
0
int main(int argc, char** argv) {
	MPI_Init(&argc, &argv);
	int threads = parseArguments(argc, argv);

	int rank;
	MPI_Comm_rank(MPI_COMM_WORLD, &rank);

	if (rank == MASTER_PROC_RANK) {
		// Execute tests as master
		Implementation impl = {"MPI", mpi_merge_master};
		executeTestcases(&impl, threads);
	}
	else {
		// Execute tests as slave
		executeSlave(mpi_merge_slave, threads);
	}

	MPI_Finalize();
	return EXIT_SUCCESS;
}
Exemplo n.º 2
0
int main(int argc, char **argv)
{
	int processID, numberOfProcesses;
	MPI_Init(&argc, &argv);
	MPI_Comm_rank(MPI_COMM_WORLD, &processID);
	MPI_Comm_size(MPI_COMM_WORLD, &numberOfProcesses);

	if (numberOfProcesses < 2)
	{
		std::cout << "\nError, please run this application with at least 2 processes\n\n";
		MPI_Finalize();
		return 1;
	}

	if (argc != 2 && processID == GlobalConstants::MASTER)
	{
		std::cout << "\nError, please provide the root configuration file URI\n\n";
		MPI_Finalize();
		return 1;
	}

	if (!RootConfigurationFileManager::getInstance()->loadConfigurationFile(argv[1], processID))
	{
		MPI_Finalize();
		return 1;
	}

	if (processID == GlobalConstants::MASTER)
	{
		executeMaster(numberOfProcesses);
	} else {
		executeSlave(processID, numberOfProcesses);
	}

	std::cout << "Process " << processID << " has completed its execution\n";

	MPI_Finalize();
	return 1;
}