/* ************************************************************************ */ int main (int argc, char** argv) { struct options options; struct mpi_options mpi_options; struct calculation_arguments arguments; struct calculation_results results; initMpi(&mpi_options, &argc, &argv); /* get parameters */ AskParams(&options, argc, argv, mpi_options.mpi_rank == 0); /* ************************* */ initVariables(&arguments, &results, &options, &mpi_options); /* ******************************************* */ allocateMatrices(&arguments); /* get and initialize variables and matrices */ initMatrices(&arguments, &options); /* ******************************************* */ gettimeofday(&start_time, NULL); /* start timer */ calculate(&arguments, &results, &options, &mpi_options); /* solve the equation */ gettimeofday(&comp_time, NULL); /* stop timer */ if(mpi_options.mpi_rank == 0) displayStatistics(&arguments, &results, &options); DisplayMatrix(&arguments, &results, &options, mpi_options.mpi_rank, mpi_options.mpi_size, arguments.row_start, arguments.row_end); freeMatrices(&arguments); /* free memory */ MPI_Finalize(); return 0; }
void initialize (int* argc, char*** argv) { if (! tpetraIsInitialized_) { #ifdef HAVE_TPETRACORE_MPI initMpi (argc, argv); // initialize MPI, if needed #endif // HAVE_TPETRACORE_MPI initKokkos (argc, argv); // initialize Kokkos, if needed } tpetraIsInitialized_ = true; }