یکی از نیازهای مهم در کلاسترهای محاسباتی و سیستمهای پردازش موازی، ارزیابی میزان کارایی سخت افزار و نرم افزار محاسباتی طراحی شده می باشد. در این مطلب یک Benchmark از ناسا معرفی شده است که ترکیبی از اجرای مسائل پیچیده محاسباتی با ورودیهای مختلف در تعدادی از رشته های تخصصی ریاضی، مکانیک سیالات و .. می باشد. این محاسبات با چارچوبهای مختلفی از قبیل OpenMP, MPI و زبانهای برنامه نویسی C و Fortran نوشته شده است.
NAS PARALLEL BENCHMARKS
The NAS Parallel Benchmarks (NPB) are a small set of programs designed to help evaluate the performance of parallel supercomputers. The benchmarks are derived from computational fluid dynamics (CFD) applications and consist of five kernels and three pseudo-applications in the original "pencil-and-paper" specification (NPB 1). The benchmark suite has been extended to include new benchmarks for unstructured adaptive mesh, parallel I/O, multi-zone applications, and computational grids. Problem sizes in NPB are predefined and indicated as different classes. Reference implementations of NPB are available in commonly-used programming models like MPI and OpenMP (NPB 2 and NPB 3).
BENCHMARK SPECIFICATIONS
The original eight benchmarks specified in NPB 1 mimic the computation and data movement in CFD applications:
Multi-zone versions of NPB (NPB-MZ) are designed to exploit multiple levels of parallelism in applications and to test the effectiveness of multi-level and hybrid parallelization paradigms and tools. There are three types of benchmark problems derived from single-zone pseudo applications of NPB:
Benchmarks for unstructured computation, parallel I/O, and data movement
GridNPB is designed specifically to rate the performance of computational grids. Each of the four benchmarks in the set consists of a collection of communicating tasks derived from the NPB. They symbolize distributed applications typically run on grids.
DOCUMENTS ON BENCHMARK SPECIFICATIONS:
BENCHMARK CLASSES
Details of NPB Problem Sizes and Parameters.
REFERENCE IMPLEMENTATIONS
Vendors and others implement the detailed specifications in the NPB 1 report, using algorithms and programming models appropriate to their different machines. NPB 1 implementations are generally proprietary and are not distributed by NAS.
A set of reference implementations of the NPB specifications has been written and distributed by NAS as NPB 2 and NPB 3. These source-code implementations are intended to be run with little or no tuning, and approximate the performance a typical user can expect to obtain for a portable parallel program. NPB 2 contains MPI-based source code implementations of the original eight benchmarks, and NPB 3 has included new benchmarks and problem classes as well as implementations using other programming models. The latest release is NPB 3.3.1.
Version | Benchmarks Included | Problem Classes | Programming Models Used | Major Changes |
---|---|---|---|---|
NPB 3.3 | IS, EP, CG, MG, FT, BT, BT-IO, SP, LU, UA, DC, DT | S,W,A,B,C,D,E | MPI, OpenMP, serial | added Class E |
NPB 3.3-MZ | BT-MZ, SP-MZ, LU-MZ | S,W,A,B,C,D,E,F | MPI+OpenMP, OpenMP, serial | nested OpenMP version |
NPB 3.2 | IS, EP, CG, MG, FT, BT, BT-IO, SP, LU, UA, DC, DT | S,W,A,B,C,D | MPI, OpenMP, serial | added DC, DT |
NPB 3.2-MZ | BT-MZ, SP-MZ, LU-MZ | S,W,A,B,C,D,E,F | MPI+OpenMP, SMP, serial | added Class E, Class F |
NPB 3.1 | IS, EP, CG, MG, FT, BT, BT-IO, SP, LU, UA | S,W,A,B,C,D | MPI, OpenMP, serial | added UA, Class D to OpenMP, serial |
NPB 3.1-MZ | BT-MZ, SP-MZ, LU-MZ | S,W,A,B,C,D | MPI+OpenMP, SMP, serial | allowed a variable number of threads |
GridNPB 3.1 | ED, HC, VP, MB | S,W,A,B | Globus, Java, serial | added Globus version |
NPB 3.0 | IS, EP, CG, MG, FT, BT, SP, LU | S,W,A,B,C | OpenMP, HPF, Java | new programming paradigms |
NPB 2.4 | IS, EP, CG, MG, FT, BT, BT-IO, SP, LU | S,W,A,B,C,D | MPI | added BT-IO, Class D |
NPB 2.3 | IS, EP, CG, MG, FT, BT, SP, LU | S,W,A,B,C | MPI, serial | added CG, serial version |