Efficient multithreaded programming on modern CPUs and GPUs

monkeybeetleSoftware and s/w Development

Dec 2, 2013 (3 years and 6 months ago)

61 views

Compact Course

Efficient multithreaded programming

on modern CPUs and GPUs






The design concept

of Multicore processor
s is dramatically changing the capabilities of
computer resources and thus has deep impact on writing efficient application codes
in science
and engineering. Trading single core performance for parallelism is the basic trend
,

which
started about five years
ago
at the desktop CPU level with the emergence of the first dualcore
processors. An extreme implementation of this con
cept is al
ready used in special
-
purpose
accelerators such as
Graphics Processing Units (
GPUs
)
.

This

compact course provides an introduction
on
how to write efficient code on
compute
nodes based on
modern multicore processor
s

and GPUs
. Topics covered are single
-
core

optimizations, multithreaded programming with OpenMP, data locality issues arising from
ccNUMA architectures
,

and GPU codi
ng with CUDA. Performance modelling

is
employed as
a key guiding principle
to compare
the
computational requirements of an applicatio
n or
compute kernel with the computer architecture to be used
,

and
to
derive purposive
optimization and pa
rallelization techniques. Hands
-
on session
will be done with simple
compute

kernels on
the
latest multicore AMD or Intel CPUs and nVIDIA GPUs.



Lect
urer



Prof. Dr. Gerhard Wellein, Friedrich
-
Alexander
-
University Erlangen
-
Nuremberg,
Department for Computer Science and Erlangen Regional Computing Center



Dr. Georg Hager, Erlangen Regional Computing Center



Structure of the lecture



4 hours of lecture in
the morning



4 hours of hands
-
on session in the afternoon


Audience



Everyone writing code to solve numerical intensive problems



Everyone who is interested in multicore and GPU programming


Information

http://moodle.rrze.uni
-
erlangen.de/moodle/course/view.ph
p?id=112&username=guest&password=guest>