General information on subject

Guarantee/Lector

guarantee: doc. Ing. Petr Gajdoš, Ph.D.
e-mail: petr.gajdos@vsb.cz
office: EA4.32

Common rules

The main goal of our lessons consists in the knowledge extension in the area of programming of parallel applications. It is assumed that students can transfer their knowledge to practical applications, e.g. in CUDA, OpenCL and C++. All the theoretical backgrounds will help the students to solve real tasks from the area of high performance computing.

Groups of max. 2 people will solve a selected topic. A working project (CUDA application) represents a result that will be reviewed during and at the end of semester.

 

A maximum of 2 absences will be accepted in the full-time study. 
In the combined form of study, a maximum of 1 absence will be accepted. 
Any further absences will be considered on an individual basis, taking into account the seriousness of the reasons for the  absences.

Software requirements

Recommended System and Software Development Environment

OS: Linux
IDE: Visual Studio Code with CMake extensions. VSCODE can be downloaded from HERE.
Programming language: C/C++

Alternatives

OS: Windows
IDE: Visual Studio 2022 Community Edition. It can be downloaded from HERE. Unfortunately, there can be still some some compatibility issues within NVIDIA and Microsoft toolchains. Or try to download VS 2022 Enterprise from HERE.
Programming language: C/C++

Books and articles

There are many books dealing parallel programming and the choice depends on individual preferences. You are not limited to the following list.

  • Jason Sanders and Edward Kandrot. CUDA by Example: An Introduction to General-Purpose GPU Programming.
    Addison-Wesley Professional, 1 edition, 7 2010. ISBN 9780131387683
  • Nicholas Wilt. CUDA Handbook: A Comprehensive Guide to GPU Programming, The. Addison-Wesley Professional, 1 edition, 6 2013. ISBN 9780321809469
  • Cheng, Grossman, and McKercher] John Cheng, Max Grossman, and Ty McKercher. Professional CUDA C  Programming. Wrox, 1 edition, 9 2014. ISBN 9781118739327
  • Shane Cook. CUDA Programming: A Developer's Guide to Parallel Computing with GPUs (Applications of Gpu Computing). Morgan Kaufmann, 1 edition, 11 2012. ISBN 9780124159334
  • Volodymyr Kindratenko, editor. Numerical Computations with GPUs. Springer, 2014 edition, 7 2014. ISBN 9783319065472
  • David B. Kirk and Wen-mei W. Hwu. Programming Massively Parallel Processors, Second Edition: A Hands-on Approach. Morgan Kaufmann, 2 edition, 12 2012. ISBN 9780124159921
  • Jung W. Suh and Youngmin Kim. Accelerating MATLAB with GPU Computing: A Primer with Examples. Morgan Kaufmann, 1 edition, 12 2013. ISBN 9780124080805
  • Peter Pacheco. An Introduction to Parallel Programming. Morgan Kaufmann, 1 edition, 1 2011. ISBN 9780123742605
  • McCool, Reinders, and Robison] Michael McCool, James Reinders, and Arch Robison. Structured Parallel Programming: Patterns for Ecient Computation. Morgan Kaufmann, 1 edition, 7 2012. ISBN 9780124159938
  • Mattson, Sanders, and Massingill] Timothy G. Mattson, Beverly A. Sanders, and Berna L. Massingill. Patterns for Parallel Programming. Addison-Wesley Professional, 1 edition, 9 2004. ISBN 9780321228116
  • Tom White. Hadoop: The Definitive Guide. Yahoo Press, third edition edition, 5 2012. ISBN 9781449311520