While strace is often used for troubleshooting and debugging, you can also use strace to get started on examining the I/O pattern of your serial codes.
One of the handiest tools used by admins to track down problems is strace, a debugging tool that traces system calls and shows where programs encounter problems. While strace is often used for troubleshooting and debugging, you can also use strace to get started on examining the I/O pattern of your serial codes.
With High Performance Computing (HPC) applications, it’s always better to have more information about the behavior of the code than too little. Knowing the behavior of your code means knowing how it scales, if it’s memory bandwidth intensive, if it’s floating point intensive, how integer intensive is it, how much message passing is done, what kind of messages are passed, what size messages are passed, and on and on. With this information you can then start to configure your cluster to match your code.
Configuring or designing a cluster to match your code is a very different approach than in the past. With previous high performance systems, you had to modify your code to match the machine. This meant that every time a new series came out, you had to modify and tune your code, which is a long and laborious process. But now, clusters give you so many options that you can tune the hardware and the software to match your code. However, to do this, you need to know your code (s) very well.
One aspect of knowing your code that many people either miss, skip, or forget, is the I/O pattern. Many times the…
Please log in to view this content.
Not Yet a Member?
Register with LinuxMagazine.com and get free access to the entire archive, including: