Tuesday, April 12, 2016

Basic Introduction to HPC and Parallel Computing.

So, I've been pursuing my Masters at ANU for the last 2 years and have been doing some really neat stuff which might interest you. It involved doing some C/C++ programming and got to use the supercomputer there. I also got to do some advanced AI, Neural Networks, HCI stuff as well as HPC & Parallel computing. If you are looking to speed up your code or Algorithm's the HPC & Parallel computing, techniques may be quite useful.
So first and foremost you must understand Amdahl's law. - https://en.wikipedia.org/wiki/Amdahl%27s_law
Speed up =(1/ (1-P))+ (P/N)
Where, P = Parallel portion of code and (1-P) is the sequential portion of the code.
         N = No. of Processors.

Vector Processing using SSE (Liks Below)
One of the things I've been looking at is SIMD processor programming. I've fallen in love with MPI and CUDA, There are some really cool blogs on this out there, I'll post a few, I found useful here.
If you want to try CUDA, SSE or MPI. I highly recommend trying respective documentation and software as it come's in great detail.
CUDA- https://developer.nvidia.com/cuda-zone(Has amazingly good documentation)
And to analyze performance PAPI Profiler - https://icl.cs.utk.edu/projects/papi/wiki/Main_Page
Hope this helps.
Cheers
Raad

No comments:

Post a Comment