Skip to content

Instantly share code, notes, and snippets.

@spagnuolocarmine
Last active September 22, 2020 18:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spagnuolocarmine/9eff4ad79bc6c6cfc2f20a53a050b141 to your computer and use it in GitHub Desktop.
Save spagnuolocarmine/9eff4ad79bc6c6cfc2f20a53a050b141 to your computer and use it in GitHub Desktop.
theme size paginate marp
gaia
4k
true
true

PCPC - 6 CFU

PARALLEL COMPUTING MODULE 🎯 3 CFU

  • Parallel Algorithms
  • C
  • Message Passing Interface (MPI)
  • Cloud Computing, Infrastructure as a Service (IaaS)
  • Amazon Web Services (AWS) - Elastic Computing 2 (EC2)

w:100px h:100px w:100px h:100px w:220px h:100px


Prerequisites

You should be comfortable programming in C, and have good knowledge of undergraduate level algorithms, data structures, and computer architecture. No knowledge of parallel computing is required.

Student support

We can talk (asynchronously) on the Discord ISISLab Community w:180px h:45px or you can schedule an online meeting (synchronously).


Learning Objectives:

  • Introduction and Practice on Amazon AWS
  • Models and architectures for parallel computing
  • Metrics for evaluating parallel computing
  • Algorithms for shared memory
  • Design of parallel algorithms
  • Message Passing Interface (MPI)
  • MPI Labs on Amazon AWS

This course will teach practical aspects of parallel computing. You will be able to effectively use parallel machines (eventually on the Cloud).


Books and references

  1. πŸ“˜ Kai Hwang, Jack Dongarra, and Geoffrey C. Fox. 2011. Distributed and Cloud Computing: From Parallel Processing to the Internet of Things (1st ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
  2. πŸ“• Czech, Z. (2017). Introduction to Parallel Computing. Cambridge: Cambridge University Press.
  3. πŸ“– Have fun with MPI in C - An interactive online book for learning MPI in C by examples available on Tech.io.
  4. πŸ—„ And more support material will be provided during the course.

#include <stdio.h>
#include <mpi.h>
#include <string.h>
static const char NERD[5] =  {0xF0, 0x9F, 0xA4, 0x93, '\0'};
static const char WORLD[5] =  {0xF0, 0x9F, 0x8C, 0x8D, '\0'};
static const char SLEEP[5] =  {	0xF0, 0x9F, 0x98, 0xB4, '\0'};
#define πŸ€“ {MPI_Init(NULL, NULL); int world_rank; MPI_Comm_rank(MPI_COMM_WORLD,&world_rank);printf("I am %s rank %d ",NERD, world_rank);}
#define 🌍 ({int s; MPI_Comm_size(MPI_COMM_WORLD, &s); printf("of MPI %s of size %d ", WORLD, s);});
#define 😴 {printf("Goodbye %s\n",SLEEP);MPI_Finalize();return 0;}
#define P(x) printf(x)
#define I P("\a");
#define am P("\a");
#define the P("\a");
#define with P("\a");
#define rank P("\a");
#define size P("\a");
#define πŸ€” {P("\a");};
#define of P("\a");
#define MPI P("\a");
#define Goodbye P("\a");
int main()
{  
	I am the πŸ€“ with rank πŸ€” of MPI 🌍 of size πŸ€” Goodbye 😴;
}

Grading Criteria

  • 5️⃣ Programming Assignments (for training)
  • 1️⃣ Homework (programming project)
    • How to have a successful homework evaluation?
      • πŸ‘ Correctness
      • 😎 Style
      • 🎯 Problem evaluation and Benchmarks on Amazon AWS
      • πŸ‘₯ Class Participation
  • The last "dance" of your course
    • πŸ’ƒ Homework Discussion

Online questions forum

  • Discord ISISLab Community

    w:300

  • GitHub.com

    • GitHub issues. Please use it for sharing ideas and issues on both theoretical and practical course modules
    • Homework submission
    • Report your work in Markdown

$PCPC: Parallel

$git commit -m 
"Here! Are you ready to be speedup your programs? Questions?"
$git push origin master
echo 'Thank your attention!'
Thank your attention!

bg right:34% h:400

⬇️ Download this slide https://gist.github.com/spagnuolocarmine/pcpc-presentation-mpi.md

h:30 h:30

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment