客户: 位于芝加哥附近的阿贡领导计算设施(ALCF)是美国能源部资助,专注于突破性的前沿科学——解决国家需要的创新的方法和最大规模计算系统的关键问题。

况:先前运行成功的一个等离子体物理仿真在IBM蓝色基因/ Q系统超过16,000内核上崩溃了。

解决方案: 一个周末的时间offline运行Allinea DDT,明确地找到了问题所在。   

成功: Allinea DDT找到了一个代码上的逻辑错误,内核不超过16000个就不会出错,但超过16000时就会出现问题。而这用传统的调试方法是很难发现的。

总结: “将早期的科学应用移植到Mira上,调试器是非常重要的,”ALCF的应用性能工程经理Kalyan Kumaran说。

 

阿贡国家实验室领导计算设施ALCF的计算机科学家和工程师拥有世界上第四快的超级计算机,并且用量很大:尝试最大最复杂的宇宙模拟是他们其中的一个成就。

但是要让软件能够成功运行在极端规模上往往是一个巨大的挑战。有时候错误只是“出现”在当应用移植到更多内核数上——因此很明显,ALCF需要调试工具,可以扩展每个科学应用,不管规模大小。

ALCFMira是IBM蓝色基因/ Q系统,有786,432个内核,计算能力达到10 petaflops。ALCF从2010年起就和Allinea紧密合作,将Allinea DDT的可扩展架构发挥在IBM BG/Q上。

“为了将科学应用扩展到这些高端机器上,我们一直在努力。我认为公平地说,这对于调试工具来说也是一个挑战。”ALCF的计算科学家Tim Williams说。

任务:一个检测不到的问题

作为在很多其他平台上进行可扩展式调试的领导者,Allinea专注与ALCF一起工作,将Allinea DDT能够在整个系统上进行工作。

Allinea DDT一安装到系统上,阿贡的应用团队决定用一个长期存在的问题来测试一下这个调试工具。他们想用Allinea DDT去寻找为什么一个等离子体物理模拟运行在16000内核上会突然崩溃。这个应用是模拟大气行为的,如太阳的大气和太阳风。

在这样的规模上去寻找问题,这是一个挑战,也是一个未解之谜。

“对于调试来说,这是一个严峻的考验,因为问题只是发生在当出国一定计算规模的时候,我们是无法用printf来调试的,” Williams说。

在你睡觉的时候调试

Allinea建立了一个可扩展的调试器来面对这类的问题——但是第二个挑战是访问这个有16000个核的机器是很难预测的。访问必须发生在当一个slot空闲的时候,而这可能就在晚上。

这个方案完美之处就在于Allinea DDT的offline模式,这就可以用于查阅崩溃的情况,而不需要用户一定要看着它发生。

“我们把作业放到队列中,然后回家,当我们周一来工作的时候,已经有一个文件告诉我们发生崩溃的位置——MPI库,” Allinea首席运营官David Lecomber说。

不可能变为可能

下一步是了解为什么这个崩溃会发生。为了解决这个难题,他们再次offline运行Allinea DDT,并打开内存调试——这是Allinea DDT所提供的能检测越界读写数据区域和其他常见问题的功能,在这些问题有机会“感染”运行中的程序之前。

第二天,他们与William通过浏览器的方式一起阅读了这份报告。报告很快显示了问题——在一个看上去没什么问题的循环里。这个循环的低指数被设置为0,逻辑上不应该发生的问题却在后面导致了崩溃。

为了证明这个不可能的问题是可能的,Allinea团队设置了一个交互式的会话以观察价值的演变过程,最后证实了问题。程序中一个非法的零值用来索引一个数组。阿贡的应用团队重新修改的逻辑,解决了问题。

“人们经常发现调试出来的问题往往是人们认为不可能发生的,”Lecomber说:“在这个案例里,Allinea DDT的内存调试很快发现了问题,而用传统方法,是很难发现真正的问题所在。”

与蓝色基因架构一起扩展

另外一个Allinea与ALCF一起工作必须要克服的挑战是要让Allinea DDT以最优的状态适应IBM蓝色基因/P和蓝色基因/Q系统

“在Mira架构中,128个计算节点为一组,连接在一个I/O节点上。每个计算节点有16个核,”Loy说,“在计算节点上用轻量级内核在进行有效计算时有很多优势。”

但这种设计也意味着所有的在这个8192核上支持模拟的调试机器必须运行在I/O节点上。优化这个问题是Allinea过去两年在这里工作的大部分内容。

“将早期的科学应用移植到Mira上,调试器是非常重要的,”ALCF应用性能工程团队的经理Kalyan Kumaran说:“这些早期的科学项目覆盖范围包括科学场、数值方法计算的方法,所以准确的调试是非常重要

ALCF有Allinea DDT全系统license,因此用户可以在每个机器上使用所有的功能,当科学家从Interpid上移植到Mira上,Williams认为需要更大规模地诊断问题。

“Allinea工具对我们的应用团队来说非常有用,因为他们可以持续随着Mira一起扩展。”他说。

通过与Allinea的合作,ALCF应用团队已经开发了一个可扩展的,高品质的开发工具可以诊断类似Mira这样的系统。