Code Monkey home page Code Monkey logo

p2p_comm_collective_mpi_perf_test's Introduction

P2P_COMM_Collective_MPI_PERF_Test

Point to Point Communication and Collective MPI Performance Test

Getting started

These instructions will get you compiling and running the programs in no time. The structure of the repo is separated roughly in two partitions: Assign 3 to Final contains the source code to build the benchmarking program for CSCI6360 Parallel Programming final project, while Assign4 contains the code related to Assignment 4.

Prerequisite

Have the following libraries installed in your environment:

Once the environemnt is properly set up, we can move on to the programs.

Assignmet 3 to Final

The main program gol-main.c runs the MPI and CUDA version of Conway's Game of Life algorithm. The algorithm is derived from Assignment 3's deliverable and it is by the courtesy of Lorson Blair. ph.D. at Department of Computer Science at RPI. Since we need to evaluate the performance of four parallel computing models running the algorithm, we have adopted the logp_mpi library for the assistance. This work comes from the work:

Thilo Kielmann, Henri E. Bal, and Kees Verstoep. 2000. Fast Measurement of LogP
Parameters for Message Passing Platforms. In Proceedings of the 15 IPDPS 2000
Workshops on Parallel and Distributed Processing (IPDPS '00), Jos� D. P. Rolim
(Ed.). Springer-Verlag, London, UK, UK, 1176-1183.

and curated by willtunnels (https://github.com/willtunnels) to make the library available to the public domain.

Now, let's go through the compilation and execution of the program.

Compiling

First thing first, get to the directory assignment3_to_final/ and open the Makefile. In the script, make sure that the first few parameters have the preferable settings that you need. Once done checking, you should be able to simply send the make command. In the terminal connected to AiMOS or any sort of parallel system, enter:

make

And the Makefile will handle the rest from here.

Running the test

The gol-main.c is the main source code file that contains the test. After a successful compilation, you should get an executable called gol-cuda-mpi-exe. To execute it, you need to imput another 5 parameters. These parameters are:

  • pattern number
  • square size of the world
  • number of iterations
  • number of threads per block
  • whether to ouput or not (0: false, 1: true)

For instance, you can issue the following in the terminal:

./gol-cuda-mpi-exe 0 32 2 256 0

To properly run the program.

Assignment 4

There are two binary files after the compilation: io-main and parallelio.

Compiling

The compilation is straighforward. Simply enter in the terminal:

make

And voila, the two executables appear.

Run the tests

To run the tests, simply execute either one as:

./io-main

or

./parallelio

Authors

Acknowledgements

And also a special thanks to the authors and maintainers of logp_mpi libraries to make this benchmarking possible:

One last thing. A special credit and memory is given to Dr. John H. Conway, the brilliant mathematician who invented the Game of Life algorithm and passed away on April 11, 2020 due to the outbreak of COVID-19 at the age of 82. This time of hardship has been affecting all of us but we will get through it together to endure and prosper.

p2p_comm_collective_mpi_perf_test's People

Contributors

itoschum avatar lorsonblair avatar megacephalo avatar jjiangaj avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.