Parallel Programming
Overview and Concepts
Dr Mark Bull, EPCC markb@epcc.ed.ac.uk
Parallel Programming Overview and Concepts Dr Mark Bull, EPCC - - PowerPoint PPT Presentation
Parallel Programming Overview and Concepts Dr Mark Bull, EPCC markb@epcc.ed.ac.uk Outline Why use parallel programming? Parallel models for HPC Shared memory (thread-based) Message-passing (process-based) Other models
Overview and Concepts
Dr Mark Bull, EPCC markb@epcc.ed.ac.uk
It is harder than serial so why bother?
a single core alone could not provide the time-to-solution required for complex simulations
parallel programming
power of single cores, the driver is due to the fact that all modern processors are parallel
HPC
not provide the compute/memory/IO performance required
memory/storage simultaneously
exploit the resources in a parallel manner
models have emerged.
How can we write parallel programs
programmed as if they share memory
this term is now a little old-fashioned
portion of the data
memory space
arrays) to be effective
exchanging messages
in the process
and task parallelism
memory
implemented
nature of communications
(>100,000) due to overheads
Assessing parallel performance
changes as the number of parallel processes/threads is increased
number of parallel elements, keeping the amount of work per element the same
to achieve than weak scaling
How much can you gain from parallelism
performance improvement are useful to consider:
problem size given more cores
fixed amount of time and given more cores
limited by serial portion of the code
processes/threads
process/task then the serial component will not dominate