Is Your Code Ready for Today’s New Parallel Features?

No application is forever. Even applications that claim to be decades old, have evolved. New “norms” like the Internet connecting computers, graphical display replacing teletypes, and mouse/trackpads are among the changes that applications evolve to utilize.

Today, nothing is more important to this evolution that Parallel Computing. This is what “modernizing code” is about.  The rewards can be huge for modernization of demanding applications. The penalty for ignoring the opportunity can be large too if competition takes the first step.

Fortunately, we can recommend specific online resources, regional classes, and activities at the upcoming ISC conference, to help with code modernization. These are really worth a look!

To drive ongoing gains in high-performance computing applications, software developers need to modernize their code to harness the potential of multi-level parallel programming. This is the key to taking advantage of today’s multi-core and many-core processors, which offer amazing capabilities that are maximized by parallelism. Code modernization enables multi-level parallel algorithms to capitalize more fully on the parallel features available in today’s hardware. It is clearly an investment in the future.

For an example of the impact that parallelism is making, consider the recent news on the LIGO (Laser Interferometer Gravitational-Wave Observatory) project, which is supported by the National Science Foundation and operated by Caltech and MIT. Scientists working with the project relied on parallel systems and the Python programming language to observe ripples in the fabric of space-time, called gravitational waves, and confirm a prediction of Albert Einstein’s 1915 general theory of relativity. Discoveries like these wouldn’t be possible without parallel systems.

The Intel Modern Code Developer Program

Code modernization is a key goal of the Intel® Modern Code Developer Program, which we introduced in July 2015. As James Reinders noted in a blog post on the day of the launch, the community includes our well-received series of Modern Code Live Workshops, our Intel® HPC Developer Conferences, the Intel® Parallel Computer Centers (IPCCs), and experts from around the world, including the Intel® Black Belt Software Developers and Intel® Software Innovators

Since the introduction of the Intel® Modern Code Developer Community, Intel has reached more than 850,000 developers with modern code tools, trainings, and key messages, versus an initial goal of 400,000 developers. Intel and partners trained more than 11,000 developers in 2015 via easily accessible online and face-to-face code modernization technical sessions, versus a goal of 10,000. Each training session included a hands-on coding lab on remotely accessed Intel® Xeon® processor and Intel® Xeon Phi™ coprocessor-based clusters.

This year we are building on the momentum of the Modern Code Developer Program with a goal to reach 1 million developers with modern code tools, trainings, and key messages, including new technologies such as Intel® Scalable System Framework (Intel® SSF), the Intel® Xeon Phi™ processor, and new topics, such as machine learning. We are also ramping up our training activities with a goal to train 18,000 developers with hands-on face-to-face and virtual trainings worldwide on the latest modern code techniques, tools, trends, and frameworks.

With the Modern Code Developer Program, you can access the tools, knowledge, and expertise you need to unleash your code’s potential, maximize the speed of your applications and HPC projects, and maybe turn your team into a hero. For more on this theme, check out the video: One Hero’s Modern Code is Changing the World!

Another program that Intel is offering to accelerate HPC development is the  Knights Landing Ninja Developer Platform.  You can now buy a turnkey development platform that includes a Knights Landing system (i.e., a system based on the new Intel® Xeon Phi™ processor), a license for Intel® Parallel Studio XE and the support and training to help you succeed.

Modern Code Developer Challenge

A particularly gratifying project driven via the community was the Modern Code Developer Challenge. This challenge attracted more than 17,000 participants, from 130 universities in 19 countries, 2000 of whom were provided access to Intel Xeon processors and Intel Xeon Phi coprocessors to optimize code used in a CERN openlab brain simulation research project. The goal of the CERN project is to find treatments and cures for neurological disorders, such as schizophrenia, epilepsy, and autism.

The grand-prize winner of the Modern Code Developer Challenge was Mathieu Gravey, a Ph.D. student from France now studying at the University of Lausanne in Switzerland. He submitted the fastest optimized brain simulation code, using modern code and parallel computing on Intel® Xeon Phi™ coprocessors. The initial code base had a runtime of 45 hours. By applying parallel computing techniques and employing Intel modern code technology, Mathieu improved the runtime to just over 8 minutes—a 320x improvement! For his effort, Mathieu won a coveted nine week internship at CERN openlab.

For a closer look at Mathieu Gravey’s work, read the blog post Five Big Insights from the Student Winner of the Modern Code Challenge. For a look at the insights gained by another contest winner, check out Daniel Vea’s technical case study titled “Optimized Code for Neural Cell Simulations.”

At a broader level, code modernization is one of the keys to taking full advantage of the Intel® Scalable System Framework to enable better HPC performance for demanding workloads like big data analytics and machine learning. Intel® SSF uses a recommended combination of Intel® Xeon processor E5-2600 v4 product family, Intel® Xeon Phi™ processors, Intel® Omni-Path Fabric, Intel® Enterprise Edition for Lustre* software, Intel® SSD Data Center Family, or Intel® software tools for HPC to enable systems to achieve exceptional performance and to efficiently and reliably scale to increasingly larger system sizes.

The HPC community embraced parallelism long ago, and the systems to run parallel applications have evolved with the needs of users. Now the challenge is to gain the greatest value from parallelism by modernizing code to take full advantage of the capabilities of the latest multi-core and many-core processors. That’s a key goal for the Intel® Modern Code Developer Program  and its many resources that are there to help HPC developers get the most out of their applications on modern hardware.

To get involved with the community, and to take advantage of training and tools for code modernization, visit the Intel® Modern Code Developer Program in the Intel Developer Zone.