HPCシステムズではエンジニアを募集しています。詳しくはこちらをご覧ください。
HPCシステムズのエンジニア達による技術ブログ

Tech Blog

morimoto

計算化学

そのデータにストーリーはあるか?ーデータに踊らされないためにー

背景 昨今さまざまな数字、データ、グラフを目にする機会が増えています。その一方でそれらをどう解釈して読み解くのか、というリテラシーの問題が取り沙汰されるようになっています。テレビ等で誤解を生みかねないグラフ形式を選択していることなどに指摘がある一方で、意図的にそうした手法を用いているものから間違った判断に誘導される危険性もあります。統計データが直感に反する結論を導くことも珍しくありません。 どの様にデータを使い、見せ、意図を伝え、解釈されるのか?というのは受け側、出す側の両方に求められるリテラシーですが、一方で普段どおりの見せ方をしたのに、他の分野で全く異なる解釈をされ、驚かれた経験がある...
HPC

M6g 触ってみた (2) -OpenFOAM ベンチマーク結果-

はじめに 前回の記事でAWS EC2 M6gインスタンスに使われているGraviton2についての簡単な紹介と、HPLベンチマークの結果を掲載しました。今回はOpenFOAMについてのベンチマーク結果をご紹介します。実のところA1インスタンスの登場時にも同様の検証を行っていましたが、当時はこのブログもなかったので、私が参加した勉強会などのLT等で紹介するにとどまりました。 ベンチマーク内容 これも前回触れましたが、OpenFOAM-v1912をUbuntu20.04LTS標準のgcc-9.3.0, OpenMPI-4.0.3でビルドしました。ベンチマークデータは弊社も賛助会員のオープンC...
HPC

M6g 触ってみた (1) ーARM64の広がる世界ー

はじめに SARS-CoV-2対策のため、未だ未完成の富岳の起動が発表されたことに、オタク心をくすぐられた方も多いのではないかと思います。富岳はCPUがARMベースであることも知られており、1CPUあたり48コアにおよぶ計算用コアはHPCに必要な演算性能を生み出しますが、カタログ上の最大演算性能は内蔵されているSVEと呼ばれるベクトル演算ユニットに依るところが大きいと思われます。ARMはCPUが持つべき基本機能を備えた設計のみをライセンス販売していて、開発者はそれをたたき台にアレンジしたり、SVEのような付加機能を付け足したりすることで、実際のCPUを設計・製造します。これによりCPU全体や...
HPC

リモート会議について

背景 ここ数年のHPC環境では、CPUやGPUによる計算コストよりも、データを移動するコストが支配的になっているという認識がますます強くなっています。どれだけ計算能力が高くてもデータが届かなければ、計算した結果を保存できなければ、せっかくの高速な環境はそれを待つことに時間を浪費しパフォーマンスが劣化します。メモリからのデータ転送でキャッシュのアルゴリズムが重要な要素となり、低遅延のネットワーク、ストレージの役割がますます大きくなっています。お金のかけ方が以前とは変わってきているわけです。一方でデータを動かすのではなく、データを中心にしてシステムを割り当てていくデータセントリックという、逆転の...
HPC

AWSが拓いたLustreファイルシステム新時代 -3-

前置き 前回の記事で「短期決戦・スクラッチ向き」とか書いた途端に、永続的ストレージの発表があり、頭を抱えた筆者です。多数のユーザーが混在するクラウド上においてはパフォーマンスと同時にセキュリティも重要ですが、条件付きながらデータ転送も保存データも暗号化されています。普通のLustreでは行われていないOSTの2重化すら実現しています。さらにパフォーマンス向上も実現しています。これでAWS上に「普通のLustre」をつないだ「普通のスパコン」を運用する上で必要な、ある意味それ以上の「モノ」はほぼ揃ってしまいました。今回はその作り方と使い方を簡単に勉強しておきましょう。 AWSとHPC環境につ...
HPC

SingularityコンテナでAMD GPUを試す -2-

前置き この記事を書いている間にSingularityはEPELリポジトリから最新の3.5.3がインストールできるようになり、GROMACSは2020.1がリリースされました。ちなみにGROMACSは「誤った結果を出す」という理由で、GROMOS力場を削除していくようで、以前のデータがそのままでは使えなくなったり、計算結果が異なる可能性があります。ただ、2020.1にもファイルは従来どおり残っているので(使おうとするとワーニングは出ますが)一応計算は実行でき、ベンチマークの取得は可能です。 GROMACSに関する予備知識 分子動力学計算は単一の計算を繰り返しているわけではなく、近距離にあ...
HPC

SingularityコンテナでAMD GPUを試す -1-

背景 コンテナを使う時よく問題になるのは、特殊なハードウエアを使う場合にデバイスドライバとそれを叩くライブラリの組み合わせ問題です。コンテナはカーネル空間を分離してユーザーランドだけで動きます。つまりカーネルとデバイスドライバは管轄外になります。一方でアプリケーションを動かすライブラリはユーザーランドつまりコンテナ内にあります。せっかくのポータビリティがコンテナにあっても、このミスマッチでアプリが動かないのでは困ります。HPCではGPUをはじめ、Infinibandだったり、特殊機材のハードウエアや他のマシンのメモリすら直接叩いてパフォーマンスを最大化してきた歴史があります。そもそもコンテナ...
HPC

AWSが拓いたLustreファイルシステム新時代 -2-

旧来の普通のLustreとクラウド上のLustreの着眼点の違い 前回はLustreファイルシステムの概要を解説をしました。Lustreがどのようなコンセプトで設計され、大容量と高性能を実現しているのかおわかりいただけたのではないでしょうか。さて、前回少し触れましたが、MDS/OSSをそれぞれ2重化して可用性を高めた「普通のLustreの構成」を図にすると、次のようになります。 Lustreをオンプレミスで構成して安定運用しようとすれば、導入コストは数千万円〜になり、高度な技術と経験が必要です。しかし最大スループットなどについてある程度目をつむれば、AWS上でこうした構成を組むことはテ...
HPC

AWSが拓いたLustreファイルシステム新時代 -1-

はじめに HPCとはHigh Performance Computingの略で、一般には科学技術計算を意味すると認識されています。ところが、この中にどこにも「科学」とか「技術」とかの単語はありません。HPCの定義として高速にデータ処理をするもの全般として広くとらえた方が良いと、ずっと個人的には考えていますが、まだまだ一般的な考え方とは言えないのが現状です。 さて、最初にAWSがLustreをやると聞いた時は、旧来のHPC以外の人はそもそもLustreなんて知らないし、使う理由もないのでは?と思っていました。実際、Lustreをメインのストレージとして使うには初期投資が大きくなりがちで、...
HPC

OS付属コンパイラが古すぎて困った人へ

RHEL/CentOSについて  これらのディストリビューションはその名の通りエンタープライズ用途に用いることを前提に作られ、サポートされています。長期に渡って運用されるシステムのために固定された仕様のまま、セキュリティ対応の修正が入れられています。バージョンが固定されていることで、仕様変更が入らないことが保証され、修正は入っても突然ソフトウエアが使えなくなる恐れはありません。しかしその反面、何年も前に策定された仕様のため、新しいソフトウエアに対応できなくなるという弊害をはらんでいます。  RHEL6.0/7.0のリリースはそれぞれ2010年/2014年なので、10年前/5年前の仕様となっ...
HPC

サインして自分だけのオリジナルコンテナイメージを作ろう

背景 どこかで聞いたようなタイトルですが・・・。 さて、DockerやSingularityなどのコンテナは、インターネット回線があれば公開リポジトリにあるイメージをどんどん持ってきて、自分の環境で利用することができます。反面、そのイメージの品質やセキュリティレベルについては自己責任です。しかし、中に何が入っているかつぶさに調べてからでないと使えないというのでは、せっかくの利便性が活きません。昨年Docker hubに登録されていたイメージの中に、仮想通貨のマイニングツールが仕込まれているものが複数見つかるという事件が起きたことから、利便性に隠れて見て見ぬふりをされてきた議論が一気に活発に...
HPC

短時間ジョブのスループットについてのシンプルな実験

背景 ビッグデータという言葉もそろそろ使い古され、耳にする機会も減ってきた気がしますが、そういう分野がなくなってしまったわけではなく、そうしたサイズのデータを扱うことが当たり前になったという解釈が妥当そうです。実際、ビッグデータという単語を聞かなくなったこととは裏腹に、これまで得られた多数の計算結果を網羅的に統計処理をしたり、データ間の相関を取るなど、直接計算結果を得ることの先の業務が必要になって来ていると、よく耳にするようになりました。その分析にAI的な手法を用いることで効率的に目的(予算の獲得ではなく・・・)を達成できることもあるようですが、コンピュータ資源の利用方法が従来と大きく変わっ...
HPC

UBIとSingularityと

UBIとは 先日Redhat Enterprise LInux 8がリリースされました。使い勝手の面ではあまり変わりませんが、内部的に多くの更新や変更がはいっており、期待が高まるところです。ところで、同時に発表されたUniversal Base Image(UBI)が話題になっています。これはコンテナ専用のOSイメージで、Redhat社の公式OSイメージであるにも関わらず無償で提供され、再配布まで可能になっています。そのため、自分でコンテナイメージを作る必要がなく、拾ってきたイメージに何かが仕込まれているといった懸念もありません。サブセットながら公式のリポジトリがあり、yumやdnfでアップ...
HPC

PDCP使ってますか?

ファイルだって並列でDistributeしたい 前回のpdshには、pdcpというファイルコピーを複数のサーバーへ並列で行うユーティリティが存在します。これを用いれば、クラスターノードを増設で全てのマシンの/etc/hostsを更新したいとか、ライセンスサーバーのアドレスが変わったので静的ルートの設定ファイルを一斉に更新したいとか、そういうケースでコマンド一発でしかも並列実行できます。多数のファイルを一斉に送信できるという意味のパラレルではありませんのでご注意下さい。 転送 基本的に使い方はpdshと変わりません。-wや-gで標的となるホスト名やグループを指定します。次に展開するファイル...
HPC

PDSH使ってますか?

PDSHとは もともとIBMのクラスター管理ユーティリティ群だったClusterITの中にあったdsh(Distributed shell)のパラレル版です。dshは同じ処理を多数のマシンで行いたい場合に使うものですが、クラスターシステムの大規模化やスピードアップのために、並列動作に対応させたのがPDSHです。 RHEL/CentOSではEPELリポジトリからインストール可能ですし、ビルド自体も難しくはありません。PDSHソースコード配布元はこちら。 ここでは計算ノードがnode001からnode128まで128台あるとし、ログインしている管理ノードからは、全てのマシンにパスワードなしで...
HPC

システムの可用性を考えるための基礎

背景 システムは壊れることを前提に、ユーザーの優先順位に従い、被害を最小限にするよう設計されます。つまり、被害の定義や優先順位によってその設計は変わってくることになります。ここではそのための用語と方針について、簡単に触れてみたいと思います。 冗長化(Duplication) システムの運用が連続的に続けられる性質を可用性(Availability)とよび、それを実現するために同じものを複数用意し、いつでもどちらかが利用可能とすることを冗長化と呼びます。冗長の具合により最低限必要な個数をNとしてN+1といった表現を用います。RAID6はN+2相当と考えられます。冗長化は可用性を高めるための...
HPC

データの信頼性について改めて考えてみる

背景 「自分で書いたメモが読めない・・・」こんな経験はないでしょうか。 字が汚な過ぎたというのはともかく、紙の質やインクが薄かったり、濡れてしまったり、理由はいろいろあると思います。 記録メディアはどうでしょうか。光学メディアに傷を付けて読み込みエラーになったり、書き込みに失敗したり、 ドライブの相性で読めなかったりということがあります。CDは蒸着したアルミ薄膜が酸化して読めなくなることがあるようです。思い出の一枚はチェックしておいたほうが良さそうです。 また、留まるところを知らない半導体や記録媒体の微細化、信号の高速化により、データは常に変容する危険性を はらんでいます。ここでは大容...
HPC

不揮発性DRAMデバイスを用いたディスクキャッシュの効果

これまで科学技術計算のボトルネックはCPUなどの計算そのものによるものでした。ストレージへの要求も、巨大ファイルの格納が可能な大容量、それを保存するためのスループット(帯域幅)が主要な要件だったように思います。 しかし、昨今のAI・ビッグデータのブームの到来とともに、膨大な数のデータが主役となっています。いかに多くのデータを効率的に保存し、検索可能とし、再利用ができるか?が鍵となっています。特にデータ同士の相関を取るなどの統計処理において、その傾向は顕著です。これまでデータベースのための要件であった高IOPS・低レイテンシといった応答性能の向上が、ストレージハードウエア及びファイルシステムに対して求められています。