qizheng3 / CSE6220-Proj1

Parallel polynomial evaluation (MPI)

Home Page:https://github.gatech.edu/ucatalyurek7/cse6220-Sp17-src

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HPC [Spring 17] - Programming Assignment 1

Code hosting

You are highly encouraged to use a code version management tool such as git. This will help you to code in a team and keep track of your progress.

However, do not upload your code to public repositories. If you want to use version management for collaboration, make sure to use private repositories.

We highly recommend using Georgia Tech's Enterprise Github installation at https://github.gatech.edu/

We will also be hosting the framework code for the programming assignment on there. If you find any issues with the code framework and we have to make changes, we will publish those changes in that GitHub repository additionally to sending out the updated framework.

Code structure

All the code is located at the root level of the project.

There are multiple header and .cpp files, your implementation will go into the following files:

  • evaluator.cpp: Implement the sequential algorithm for polynomial evaluation to the function declaration in evaluator.h
  • mpi_evaluator.cpp: Implement the parallel algorithm for polynomial evaluation to the function declaration in mpi_evaluator.h
  • utils.cpp: Implement any utility functions you need while implementing your algorithms put the function declarations in utils.h

Other files containing code that you should not change are:

  • main.cpp: Implements code for the main executable poly-eval. This does input/output reading and calling of the actual functions.
  • io.h: implements IO functions and random input generation
  • const.h: contains constants used in the application

Utility scripts (you may play around with these to generate your own custom input):

  • generate_input.py: Python script to generate inputs. You can modify this code to generate different inputs.
  • check_output.py: Checks whether the output from jacobi is correct, by comparing the output with pythons numpy implementation.

Compiling

In order to compile everything, simply run

make all

Running

Serial execution example:

./poly-eval sample-constants.txt sample-values.txt

Parallel execution example:

mpirun -np 3 ./poly-eval sample-constants.txt sample-values.txt

About

Parallel polynomial evaluation (MPI)

https://github.gatech.edu/ucatalyurek7/cse6220-Sp17-src


Languages

Language:C++ 76.1%Language:C 21.0%Language:MATLAB 1.5%Language:Makefile 1.4%