1- High Performance Computing Research

Development of E-class computer system

  • high-performance interconnect
  • Calculate, program, run models

Application-driven new scalable basic algorithms (computable physical modeling and new computing methods for exascale computing)

image.png|center|600

High-performance computing application software development

Parallel Programming Framework

Parallel computing is a subdivision of high-performance computing. Its main idea is to decompose complex problems into several parts, and assign each part to an independent processor (computing resource) for calculation to improve efficiency.

A parallel programming framework is a software library, toolset, or programming model for implementing parallel computing in computer systems. For different problems, parallel computing requires a dedicated parallel architecture. The architecture can be a specially designed single hardware or supercomputer with multiple processors, or it can be composed of several independent computers interconnected in a certain way. cluster

These frameworks are designed to simplify the complexities of parallel programming and allow programmers to more easily exploit the potential of high-performance computing platforms such as multi-core processors, distributed systems, or supercomputers

Common parallel programming frameworks:

  1. OpenMP (Open Multi-Processing): OpenMP is a parallel programming model for shared memory systems. It uses directive-based compiler directives to specify regions of parallelization, allowing programmers to convert serial code to parallel code. OpenMP is suitable for multi-core processors and is supported in many programming languages ​​(such as C, C++, Fortran).

  2. MPI (Message Passing Interface): MPI is a parallel programming model for message passing in distributed memory systems. It is suitable for building parallel applications running on multiple computing nodes, allowing communication and synchronization between nodes through message exchange.

  3. CUDA (Compute Unified Device Architecture): CUDA is a parallel programming framework developed by NVIDIA, which performs parallel computing for NVIDIA's GPU (Graphics Processing Unit). It allows programmers to perform massively parallel computing on the GPU, especially for tasks such as processing graphics, deep learning, and scientific computing.

  4. OpenCL (Open Computing Language): OpenCL is an open-standard parallel programming framework that can be used for parallel computing in heterogeneous computing environments, including GPUs, CPUs, and other accelerators. It provides general parallel computing support across different devices.

  5. TBB (Intel Threading Building Blocks): TBB is a C++ template library developed by Intel to simplify parallel programming on multi-core processors. It provides a high-level abstraction that makes it easier for developers to write parallel programs.

  6. Spark : Apache Spark is a fast, general-purpose distributed computing system that supports in-memory computing for large-scale data processing and analysis. It provides an easy-to-use API and supports multiple programming languages.

These parallel programming frameworks are all designed to improve computational efficiency and performance, and enable developers to better utilize the parallel processing capabilities of modern computer architectures. Choosing an appropriate parallel programming framework depends on the requirements of the application, the target platform, and the developer's preferences.

Application collaborative development optimization platform and tools

  • Large-scale pre- and post-processing visualization tools
  • Performance and Energy Efficiency Tuning Tools
  • Massively Parallel Application Software Repository

image.png|center|1000

software example

  • Parallel Computing Software for Large Fluid Machinery
    • Multilevel Scalable Heterogeneous Parallel Software
  • High-performance application software for complex engineering mechanics
    • Development of High Precision Stress Element Algorithms

High performance computing environment development

  • Computing service model and architecture

  • virtual data space

Guess you like

Origin blog.csdn.net/qq_45575167/article/details/131962997