diff --git a/homework_2/hpc/ntasks16.sh b/homework_2/hpc/ntasks16.sh new file mode 100644 index 0000000..defffee --- /dev/null +++ b/homework_2/hpc/ntasks16.sh @@ -0,0 +1,28 @@ +#! /usr/bin/env bash + +#SBATCH --partition=batch +#SBATCH --ntasks-per-node=4 +#SBATCH --nodes=4 +#SBATCH --time=1:00 + +module load gcc/9.2.0 openmpi/4.0.3 +# Note: +# The above versions are matching w/ my system's +# versions, thus making compiling/debugging easier. + +# Uncomment the following to compile the project +# Note: +# In order for the MPI to run properly (or to run entirely), we need +# to compile it in hpc using the loaded modules above. +# Note: +# Consider moving this to a separate stage before sbatch the tasks. +# make distbitonic +# make distbubbletonic + +# Suppress unused UCX_ROOT warning +export UCX_WARN_UNUSED_ENV_VARS=n + +# Suppress CUDA-aware support is disabled warning +export OMPI_MCA_opal_warn_on_missing_libcuda=0 + +srun ./bin/dist_v05 \ No newline at end of file diff --git a/homework_2/src/main.cpp b/homework_2/src/main.cpp index 0bfa754..b83d9d6 100644 --- a/homework_2/src/main.cpp +++ b/homework_2/src/main.cpp @@ -69,6 +69,28 @@ int main(int argc, char* argv[]) try { if (!get_options(argc, argv)) exit(1); + // Initialize the MPI environment + MPI_Init(NULL, NULL); + + // Get the number of processes + int world_size; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + + // Get the rank of the process + int world_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); + + // Get the name of the processor + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int name_len; + MPI_Get_processor_name(processor_name, &name_len); + + // Print off a hello world message + printf("Hello world from processor %s, rank %d out of %d processors\n", + processor_name, world_rank, world_size); + + // Finalize the MPI environment. + MPI_Finalize(); return 0; } catch (std::exception& e) {