CERN openlab II - Platform
CC - Optimization
Multi-threading
The vast majority of programmers have probably by now heard
of the multi-core revolution, and the increasing impact that
multi-core processors have on the way software needs to be
written. The possibility of gaining additional processing
power through frequency scaling has diminished greatly in
the last couple of years, while at the same time Moore’s law
continues to increase the number of transistors which can be
put on a chip. Therefore processor manufacturers have turned
to alternative means for using spare transistors, namely the
inclusion of additional processing cores in a single
processor package. This relatively new feature of modern
computers implies a different model for writing and
maintaining software than the one we have been using up
until now. Today we can usually get away with adding a new
process to the system and throwing in more memory as the
number of cores grows. Very soon, when the number of cores
in a single package reaches 16, 32 or more, adding more
memory will become very costly, and the need to change the
approach to programming will become instantly and painfully
apparent.
Our work in the multi-threading and multi-core area includes
researching existing and emerging multi-threading
technologies, hardware benchmarking and system optimization
in terms of multi-threaded performance. Moreover, we put a
lot of emphasis on understanding upcoming multi- and
many-core systems. Therefore, keeping up to date with the
key industry players, in particular Intel, is also a part of
our mission. In addition, we create analyses of technology
trends and previews, in order to prepare for significant
changes in technology and communicate them to our users.
Regular workshops on multi-core programming are being
organized, in order to aid programmers in using modern
hardware as efficiently as possible.
The purposes of our
activities in the multi-threading and multi-core area are as
follows:
-
Devising ways to
increase application performance while decreasing
resource consumption
-
Understanding the
ever-changing processor market and keeping up with the
pace
-
Anticipating
technological breakthroughs and taking advantage of new
technology features
-
Distributing
knowledge gained from the industry to serve as input for
planning at CERN and the High Energy Physics community
-
Increasing
programmer awareness and skill in the area of
multi-threaded programming
|