In this edition of our software-focused blog series, we’ll take a look at what makes a Cray system different from the rest of the high-performance computing systems in today’s market.
What makes Cray different from other HPC systems? That is a question many people have asked during my time at Cray, and my answer is always the same: “I am sorry, I am not allowed to tell you.” Joking aside, as a software product manager at Cray, I believe that the “secret sauce” lives in our software stack. The way we integrate and optimize hardware and software, ensuring our customers can run applications to solve the most complex and performance-intensive codes, is a task that Crayons take seriously — because, put simply, thanks to many of those applications we live in a better world.
When Cray shows up in the news and we see amazing supercomputers with names like Piz Daint, Trinity, Titan and Cori, you get to learn about everything hardware-related, but have you ever looked inside those beautiful machines to learn about the software stack that maximizes the compute configuration?
I want to share with you more about one of my passions and a key ingredient in Cray’s secret sauce, the Cray Programming Environment.
The Cray Programming Environment suite is a lot more than the Cray MPI and the Cray compiler. While these two components are probably the most well-known, due to their unparalleled performance and scalability, the Cray Programming Environment is a fully integrated development suite that includes:
- Compilers and programming languages
- Debugging, porting, profiling and performance optimization tools
- I/O, scientific and math libraries
- Deep learning and machine learning plugins
Designed to maximize programmer productivity, application scalability and performance, the target architecture for the Cray Programming Environment consists of multiple dissimilar multi-core processor types closely coupled with accelerators, giving our customers the freedom of hardware configuration choice.
A fundamental design goal of our programming environment is to allow for easy application porting with minimal recoding necessary for existing applications, minimal changes to existing programming models, and ease of developer transition to the new hardware paradigm.
If your organization owns a Cray system, you’re already familiar with the Cray Programming Environment suite, and I want to make sure you know about all the benefits our tools can provide for your applications. We have created a Cray Programming Environment solution brief that describes each of our tools and what can they do for you.
In the next few months, I will publish additional content on our toolset, including blogs, demos and links to more detailed and technical resources.
Join us for a live webinar on May 15 to find out how the Cray Programming Environment supports Arm-based Cavium ThunderX2® processors.