Unit 1
Unit 1
COMPUTING
CS4104 HIGH PERFORMANCE COMPUTING L T P C 3 0 0 3
UNIT I HIGH PERFORMANCE COMPUTING ARCHITECTURE 9
• Introduction - Key properties-Flynn’s Taxonomy– SIMD and MIMD systems – Vector and
Pipelining- Multiprocessors– Shared Memory Multiprocessors-Massively Parallel processors-
Commodity. Clusters-Performance issues– Heterogeneous Computer Structures
•
UNIT II PARALLEL ALGORITHMS AND CHALLENGES 9
• Fork-join – Divide and Conquer - Halo Exchange – Cannon’s Algorithm-Performance –
Scalability – Synchronization and data sharing – Data races – deadlocks and live locks–
communication between threads (condition variables, signals, message queues and pipes).
•
UNIT III SHARED MEMORY PROGRAMMING WITH Open MP 9
• OpenMP Execution Model – Memory Model – Open MP Directives – Work-sharing
Constructs- Library functions – Handling Data and Functional Parallelism – Handling Loops
– Performance Considerations.
•
UNIT IV DISTRIBUTED MEMORY PROGRAMMING WITH MPI 9
• MPI program execution – MPI constructs – libraries – MPI send and receive – Point-to-point
and Collective communication – MPI derived data types– Performance evaluation
UNIT V PARALLEL PROGRAM DEVELOPMENT 9
Case studies – n-Body solvers – Tree Search – OpenMP and MPI implementations and
Comparison
INTRODUCTION
• High Performance Computing (HPC) is a rapidly
evolving field, essential for solving complex scientific
problems and driving technological advancements. It
involves using specialized hardware and software to
achieve massive computational power.
• HPC leverages parallel processing, employing
multiple processors working together to solve
complex problems. These systems deliver significant
computational power, enabling researchers to tackle
complex simulations and data-intensive tasks.
Key Properties
Speed
• HPC systems can perform calculations millions of times faster than
traditional computers, enabling researchers to run simulations and analyze
data in a fraction of the time.
Scale
• HPC systems can handle massive amounts of data, allowing researchers to
analyze large datasets and conduct complex simulations that would be
impossible on a traditional computer.
Complexity
HPC systems can solve complex problems that are impossible to solve with
traditional computers. This allows researchers to gain a deeper
understanding of the world around
INTRODUCTION
What is HPC Architecture?
• High-performance computing (HPC) is a
method of processing large amounts of data
and performing complex calculations at high
speeds.
• In HPC architecture, multiple computer
servers are networked together to form a
cluster that has more outstanding
performance than a single computer.
Core Components of HPC
Architecture
• In an HPC architecture, a group of computers (nodes)
collaborates on shared tasks. Each node in this
structure accepts and processes tasks and
computations independently. The nodes coordinate
and synchronize execution tasks, ultimately
producing a combined result.
• The compute, storage, and network components are
the basis of an HPC architecture. The following
sections elaborate on each component.
ARCHITECTURE OF HPC SYSTEM
• Nodes - The building blocks of HPC systems, nodes are individual
computers or servers, each with its own processors, memory, and storage.
• Processors -HPC systems typically use multi-core processors, which
contain multiple processing units or cores on a single chip. These
processors can be from different vendors, such as Intel, AMD, or ARM, and
may include specialized accelerators like GPUs or FPGAs for specific tasks.
• Memory - HPC systems often require large amounts of memory to store
and process data efficiently. This can include RAM for fast access to data
and large storage systems for longer-term data storage.
• Interconnects - To enable communication and data transfer between
nodes, HPC systems use high-speed interconnects like InfiniBand or
Ethernet.
• Software - HPC systems utilize specialized software, such as parallel
programming models (e.g., MPI, OpenMP), libraries, and tools to manage,
schedule, and monitor the execution of tasks on the system.
Applications of HPC
• Scientific Discovery:HPC is used to simulate
complex physical phenomena, such as the
behavior of molecules, weather patterns, and
the evolution of stars.
• Medical Research:HPC is used to analyze large
datasets of medical images, identify patterns
in patient data, and develop new treatments
for diseases.
• Financial Modeling: HPC is used to model
financial markets, analyze investment
strategies, and manage risk, enabling financial
institutions to make informed decisions.
• Engineering Design: HPC helps engineers
design and test new products and systems,
from cars to airplanes to bridges, allowing
them to optimize performance and reduce
costs.
Flynn's Taxonomy