This code is delivered with a dedicated Makefile. This Makefile has several options. All options compile the code at least with -Wall and -Wextra flags active. Available rules:
make defaultthis rule provides a code that satisfy the assignment requests. Nostdoutmessages.make debugin this way we compile the code in order to get the execution time for each process and a message with the output requested.make debug2provides an executable with all the previous message with additional messages about topology.make csvI used this rule to compile and time the program that provide suitable output appendable directly to csv.makemake formatcode formatter provided by clang.make cleanremove executable produced
The code is tested with openMPI 4.03 and up to 96 precesses.
Must be runned as follow: mpirun -np #procs ring.x .
This code is delivered with a dedicated Makefile. All options compile the code at least with -Wall and -Wextra flags active.
Available rules:
make defaultprovide a program that satisfy the assigment requests, only message of correct result is provided from executable.-O3flag is specified.make timeitas previous but each process provide some time output.make printresulting code provide some output from each processor that explain how many elements they get and if the result is correct.make formatcode formatter provided by clang.make cleanremove executable produced The code is tested with openMPI 4.03.
How to run it: mpirun -np #nprocs matrix.x #nx #ny #nz. Total element number must be greater or equalt than processors number. The element are equally distribuited to worker and reminder is assigned in round robin way.
This code is delivered with a dedicated Makefile. All options compile the code at least with -Wall and -Wextra flags active.
Available rules:
make defaultprovide a program that satisfy the assigment requests, message of correct result is provided from executable. The output describe virtual topology shape, beacause it can be left unspecified by user.-O3flag is specified.make timeitas previous but each process provide some time output.make print1resulting code provide some output from each processor that explain how many elements they get and subdomain shape. Correctness of results is provided.make print2note use only with small matrices to understand domain decomposition and virtual topology. The executable print user friendly matrices and subdomain.make formatcode formatter provided by clang.make cleanremove executable produced The code is tested with openMPI 4.03.
How to run it: mpirun -np #nprocs matrix.x #nx #ny #nz #nprocsx #nprocsy #nprocsz. Total element number must be greater or equalt than processors number. The element are equally distribuited to worker and reminder is assigned in round robin way. If #nprocs[x/y/z] is set to 0, MPI will provide topology shape on respective direction.