Preface
Complex architecture of modern computers makes development of effective
programs a hard task. It is known that an average programmer does not
achieve 20% of peak performance of his computer even with the sequential
programs. Parallel programs show much worse figures because of the difficulties
which come from the interprocess communications.
The aim of the SET project is to provide help for application programmers
in their attempts to reach the highest possible performance of parallel
programs on target supercomputers.
Though the choice of the algorithm can influence the time of calculations
tremendously, the project is focused on the technical aspects of implementation
of algorithms for modern supercomputers. We consider application in the
field of numerical simulations mainly.
When trying to increase the performance of application, the developer
has to take into account general principles of effective programming and
particular architecture features of target supercomputer. Also, it is
important to make right choice of tools and ways of parallel programming,
and pay attention to the characteristic properties of the system software.
Usually, an application programmer is not able to reveal bottlenecks of
the target supercomputer, and does not know where the possibilities to
increase performance are and how to use them to the best. This is because
the task requires testing of supercomputer at different levels of its
architecture and measuring of its properties. The most of the widely known
test suites can be used to estimate performance of components of supercomputers
(Flops, STREAM, NetTest, The Livermore loops, MPI tests, etc.) or determine
a performance of particular applications (Linpack, SPEC, NPB…). This kind
of test suits can help in estimating the computing power of supercomputer
and to compare it to another one, but will not help to create an effective
program.
In contrast to the existent test suites our system will allow the user
to do the following:
- Evaluate the computational power of supercomputers;
- Estimate the influence of hardware and software components on the
overall supercomputer performance;
- Formulate recommendations for the effective programming of the numerical
simulation problems for the specific supercomputer;
Objectives
- Development of software for the evaluation of the supercomputer computational
capabilities in the area of the numerical simulation;
- Formation of the set of recommendations for application programmer
on implementing effective programs for particular supercomputer;
The SET system should provide:
- The set of tests for the evaluation of features and parameters of supercomputer
performance. Particularly:
-
A performance of supercomputer components, such as memory subsystem, executing
units, communication network and so forth;
- An ability of the supercomputer to perform the most frequently used computational
operations (e.g. matrix-vector operations, Fourier fast transformation,
etc.);
- A supercomputer computational power shown on real problems from the area
of the numerical simulation.
- The set of the end-user recommendations for the effective programming
of the computational tasks that are supposed to be run on the supercomputer.
- A special program for assembling, storing and visualizing the results
of the tests
State of the art
To this moment, the methodology of testing of microprocessor has been
elaborated. The programs evaluating real features of the memory subsystem
and executing units for three different architectures (x86, Opteron 244
and Alpha 21264) have been implemented. Also, the set of recommendations
for the design of the sequentional programs has been formed.
Participants
Head of the project: Valentina
Markova
Developers:
Alexei Aliev
Alexander Cherkasov
Maxim Gorodnichev
Sergey Kireev
Artyom Merkulov
|