@@ -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 |
@@ -69,6 +69,28 @@ int main(int argc, char* argv[]) try { | |||||
if (!get_options(argc, argv)) | if (!get_options(argc, argv)) | ||||
exit(1); | 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; | return 0; | ||||
} | } | ||||
catch (std::exception& e) { | catch (std::exception& e) { | ||||