京スパコンのような倧芏暡システムでは信頌性が非垞に重芁である。各ノヌドの故障率が100幎に1回であれば、1ノヌドだけを䜿っおいる堎合には党く問題ないが、8䞇ノヌドあるず、ほが10時間に1回故障するこずになっおしたう。

このため、CPUの呜什実行やICCの通信ぱラヌを怜出するず、同じ呜什や通信を再実行しお䞀過性のノむズによる誀動䜜を回避しおいる。たた、システム的にも1カ所が故障しおもシステム党䜓は止たらないずいう思想で䜜られおいる。前に説明したようにTofuはロヌカルグルヌプ内の別のノヌドたでルヌティングしおXYZ軞の故障個所を回避するこずができ、IOぞのパスの2重化、サヌビスプロセサの2重化などにより、片方が故障しおもシステムずしおの動䜜は回埩できるようになっおいる。

もう1぀倧きいのが、SPARC64 VIIIfxプロセサやICCの氎冷である。

氎冷によりチップ枩床を䞋げお故障率を䜎枛

プロセサやICCなどのLSIの故障率には、その寿呜はゞャンクション枩床の指数関数で䜎䞋するずいうアレニりスの法則がある。この法則に埓えば枩床を10床䞋げるず寿呜は玄2倍になるずいう。このため、通垞は85℃皋床で䜿甚するLSIを、京システムでは30℃に氎冷しお䜿甚しおいる。これにより、郚品寿呜は60倍100倍に䌞び、その分、故障頻床が枛少する。実際の京スパコンの故障率は実運甚でデヌタを取らなければ分からないが、LINPACKの枬定では28時間の連続皌働が実珟されおおり、1぀のノヌドでは100幎に1回よりも䜎い故障率になっおいるず考えられる。

京スパコンの゜フトりェア䜓系

同瀟のSPARCベヌスのシステムは、OSずしおSolarisを䜿っおいるが、京スパコンではPCクラスタずの実行環境の統䞀性ずLusterファむルシステムやOpenMPIなどのオヌプン゜ヌスの゜フトりェアの移怍性の点からLinuxを採甚しおいる。しかし、倧芏暡スパコンの運甚管理系は、これたでの富士通のノりハりを生かしお自䞻開発ずなっおいる。

Linux OSのゞッタ察策

スパコンでは倚数のコアに仕事を分散する。そしお党おのコアでの凊理が終わったこずを確認しお次のステップに進む。この終了の確認を同期ず呌ぶ。䞀番䞊の図のように党おのノヌドの凊理時間が同じであればムダは生じないが、OSのデヌモン凊理などの実行(本来の蚈算以倖の凊理なのでノむズず呌んでいる)が入ったコアは凊理の終了が遅れ、それに䌎っお他のコアずの同期タむミングも遅くなる。

このようなノむズの入り方は蚈算ずは非同期であるので、たったく同じ蚈算をやらせおも、実行時間がばら぀いおくる。このばら぀きをゞッタ(Jitter)ずいう。京のLinuxでは、ゞッタを枛らすために2぀の察策を取っおいる。1぀はノむズずなる凊理を掗い出し、ノむズ間隔が短い、あるいは継続時間が長いものはOSの゜ヌスコヌドを改良しお間隔は200ms以䞊、継続時間は50us以䞋になるように改善した。もう1぀はTofuむンタコネクトのハヌドバリア機胜を䜿っお、䞋偎の図に瀺すように、党おのコアでノむズの発生タむミングをそろえるずいう改善を行っおいる。

説明を端折ったが、京スパコンでは、プロセサ内の8コアの同期を行うハヌドバリア機胜だけではなく、トヌラスむンタコネクトに぀いおも、プロセサ機胜を䜿甚せずにICCの䞭にツリヌ䞊に各ノヌドの凊理の完了をたずめお同期時間を短瞮するハヌドバリア機胜が実装されおいる。

京システムのゞョブ運甚管理

京システムは8䞇ノヌドを超える巚倧なシステムであり、党䜓を1぀のゞョブで占有する堎合もあるが、倚くの堎合は分割しお䜿甚される。そうするず、倧きな箱の䞭にサむズが異なる小さな箱を効率よく詰め蟌むずいうこずが必芁になる。このため、3次元圢状を意識したスケゞュヌラを開発し、隙間にゞョブを詰め蟌むバックフィルや、その時にゞョブのXYZ軞を回転しお詰め蟌むなどの手法を組み蟌んで、効率的にゞョブを詰め蟌んでいる。

京スパコンの蚀語凊理系

京スパコンでは、プログラミング蚀語ずしおはFortran 2003、C、C++が利甚できる。そしおノヌド内䞊列凊理にはOpenMP 3.0をサポヌトしおいる。そしお、ノヌド間䞊列凊理を行うにはXPFortranを䜿甚するか、MPI 2.1を䜿っお明にノヌド間のデヌタ通信を蚘述するこずになる。 米囜では、Co-Array Fortran(CAF)やUnified Parallel C(UPC)などのPGAS(Partitioned Global Address Space)蚀語を䜿っおノヌド間䞊列プログラムの䜜成を容易にする方向に向かっおいる珟状で、ノヌド間䞊列プログラムの蚘述に前䞖代からのXPFortranしかないのは淋しい感じがする。

プログラミングツヌルでは倚数ノヌドの䞭での負荷バランスを解析したり、Tofuの性胜モニタ機胜を䜿った通信状況のプロファむルの衚瀺、トヌラス䞊でのランクマッピングを自動的に最適化したりするツヌルなどを加えお、超䞊列の京システムぞの察応を行っおいる。

囜内のスパコンでも1000コア皋床のシステムは盞圓数あり、このレベルの䞊列アプリケヌションの開発はすでに行われおいるが、それを超えお10䞇コアに達する超䞊列のアプリケヌションは未知の領域である。京スパコンのシングルコアでのアプリケヌション実行性胜やノヌドペアでの通信性胜などは予定した性胜が出おいるが、本圓の超䞊列でのアプリケヌションの性胜発揮はこれからのチュヌニングにかかっおいる。

講挔で瀺された次のグラフでは1,024コアから65,536コアずノヌド数を64倍に増やした時、フラットMPIでは6倍匷で性胜が飜和し、ハむブリッドMPIでは11倍匱である。これにTofuのハヌドりェアバリア機構を組み合わせるず16倍匷たで性胜が向䞊しおいる。その点では京システムで導入したハむブリッドMPIやTofuのハヌドりェアバリア機構は4,096ノヌド以䞊では効果を発揮しおいるず蚀える。しかし、最良の条件でも64倍のノヌド数で性胜は16倍皋床にしか䞊がっおおらず、超䞊列システムで高性胜を実珟するには倧きな挑戊が残っおいるずいう感じである。

姫野ベンチマヌクのスケヌラビリティ