Organised by TÜBİTAK ULAKBİM and METU.
Date: August 5-6, 2023 & September 2-3 2023
Event Type: Training
Format: Hybrid (METU-Ankara/online)
Topic: Programming in FORTRAN/C/C++, Parallel Programming, Open source CFD
Overview: Basic / Intermediate Fortran/C/C++ programming for CFD, MPI, OpenMP, Hybrid parallel programming.
Agenda: Introduction to Fortran, Declarations, Operators, Control Structures, Tables, I/O, Procedures (recursive procedures), Derived Data Types, Include, Memory Allocation, Intrinsic Functions.
MPI: Introduction, Environment, Communications, Communication Modes, Derived Data Types, Communicators; OpenMP: Introduction, Execution & Threads, Functionalities, OpenMP vs MPI, Interfaces, DataSharing, WorkSharing, Synchronization, Vectorization, Hybrid Programming Tools
August 5 (09.30- 15.00): C&C ++ Programming - Mehmet Ali Ak
- Introduction to C and C++ programming languages
- Variables, data types, and basic input/output
- Control structures: if-else, loops (for, while)
- Functions and modular programming
- Arrays and pointers in C and C++
August 6 (09.30- 15.00): Fortran 90 & Fortran 2003 - Mehmet Karaca
- Representation of numbers, logicals, characters.
- Declarations, Implicit None, DATA, TYPE.
- Symbolic Constants,
- Equivalence
- Operators; arithmetic, relations, logicals,..
August 12 (09.30- 15.00): C&C ++ Programming - Mehmet Ali Ak
- Introduction to object-oriented programming in C++
- Classes and objects
- Constructors and destructors
-Introduction to C++ templates
-Function templates: writing generic functions that work with different data types
-Class templates: creating generic classes that can operate with various data types
August 13 (09.30- 15.00): Fortran 2003 & Fortran 2008 - Mehmet Karaca
- Fortran Input/ Output
- Format, (redefinition),
- list directed formating
- Namelist, Direct Access
- INQUIRE, UNIT, END, ERR
August 19 (09.30- 15.00): C&C ++ Programming - Mehmet Ali Ak
- File handling in C and C++
- Introduction to scientific computing libraries (e.g., BLAS, PETCS C++)
- Basic mathematical operations using scientific libraries
August 20 (09.30- 15.00): Fortran 2003 & Fortran 2008 - Mehmet Karaca
- Procedures,
- Derived types
- Dynamic allocation
- Pointers
- Procedure interface
August 26 (09.30- 15.00): C&C ++ Programming - Mehmet Ali Ak
- Introduction to algorithms and data structures
- Implementing sorting algorithms in C and C++
- Introduction to dynamic memory allocation
August 27 (09.30- 15.00): Open MP - Mehmet Karaca
September 2 (09.30- 15.00): MPI - Hybrid Parallelization - Ali Karakuş
September 3 (09.30- 15.00): MPI - Hybrid Parallelization - Ali Karakuş
Skill Level: Senior Undergraduate, MSc level.
Duration: 5 weeks
Target Audience: Industry and academia. Possible MSc. and Ph.D. Students.
Prerequisite(s): Familiarity with any programming language
Basic programming skills working in a Linux environment.
Familiarity with a text editor.
Tools, libraries, frameworks used: gfortran, gcc
Learning Objectives: By participating in this course, you will learn basics of parallel programming for CFD.
About the instructor(s): Dr. Mehmet Karaca, METU - Department of Aerospace Engineering
Dr. Mehmet Ali Ak, ROKETSAN
Dr. Ali Karakuş, METU- Mechanical Engineering
Application Due: August 2, 2023
Contact: ncc@ulakbim.gov.tr
This course is offered free of charge
Please note that a certificate will not be given upon completion of the training.
Notes:
-
Registration will be limited to 25 people. In case of more registrations, participants will be selected based on the information provided on the registration form on the experience, area of research, and qualifications. Please cancel your registration if you won't be able to attend so that others may attend. You will receive an email confirming if your registration request was accepted.
-
Participants will receive a temporary training user account for the hands-on session.
-
Participants will use their own laptop or computer for the hands-on session.
-
Before the training, participants should install Ubuntu on their computers.
Acknowledgements
This event was supported by the EuroCC 2 project. This project has received funding from the European High-Performance Computing Joint Undertaking (JU) under grant agreement No 101101903. The JU receives support from the Digital Europe Programme and Germany, Bulgaria, Austria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, Greece, Hungary, Ireland, Italy, Lithuania, Latvia, Poland, Portugal, Romania, Slovenia, Spain, Sweden, France, Netherlands, Belgium, Luxembourg, Slovakia, Norway, Türkiye, Republic of North Macedonia, Iceland, Montenegro, Serbia.
Follow us on Twitter and LinkedIn. Subscribe to our YouTube Channel
https://twitter.com/EuroCC_Turkey
https://www.linkedin.com/company/eurocc-turkey
https://www.youtube.com/channel/UC-qaWnbbTl6OPiPasUf4t8w/playlists