Although User Services Group members Majdi Baddourah, Peter Tang, and Jonathan
Carter spend some of their time answering queries from NERSC clients, they have also
taken the initiative to identify and resolve applications issues before they turn into big
problems.
As one of the NERSC consultants who routinely handles client inquiries, Majdi Baddourah provides timely help on difficult computing problems. But Majdi, a member of NERSC's User Services Group, decided to go a step further. He took the initiative and began monitoring jobs that were performing slowly on NERSC's C90 and J90 machines. He then called some of the clients and asked if they needed help in optimizing their source codes. Codes were optimized for both I/O and the processors, then returned to the clients for evaluation. This extra effort resulted in codes running up to 10 times faster, benefiting all users of the machines.
In another case, a Grand Challenge research group asked NERSC consultant Peter Tang for help in making a central piece of code run faster. Peter studied their code and went a step beyond optimization by suggesting use of a different algorithm. This algorithm accelerated processing time by a factor of four, and Peter is continuing to look at other algorithms to achieve even greater improvements.
Jonathan Carter of User Services has also developed innovative solutions to various problems. When one group of researchers was having trouble moving their Fortran 90 code to a new compiler, Jonathan went through 20,000 lines of code piece by piece and found bugs in the compiler. He then created a smaller test code, which helped debug the compiler. In another case, Jonathan worked with a researcher using a long-running code to create an automatic checkpoint/restart feature so that the data would be saved every 20 minutes, thereby saving hours or days of work in the event of a system shutdown. In a third case, Jonathan set up an autotasking feature for a fluid dynamics code that used 4 GB of memory, about half the capacity of a J90, but used only 20 percent of the processing power, leaving 80 percent of the processors idle. By distributing the work over more processors, autotasking allows the J90 to be fully utilized.