問題タブ [hpcc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
stream - STREAMおよびGUPS(シングルCPU)ベンチマークはNUMAマシンで非ローカルメモリを使用できますか
HPCC、STREAM、GUPSからいくつかのテストを実行したいと思います。
彼らは、メモリ帯域幅、遅延、およびスループット(ランダムアクセスの観点から)をテストします。
メモリインターリーブが有効になっているNUMAノードでシングルCPUテストSTREAMまたはシングルCPUGUPSを開始できますか?(HPCC-ハイパフォーマンスコンピューティングチャレンジのルールで許可されていますか?)
非ローカルメモリを使用すると、ランダムアクセスに使用できるメモリバンクの数が2倍または4倍になるため、GUPSの結果が増える可能性があります。(GUPSは通常、非理想的なメモリサブシステムと遅いメモリバンクの開閉によって制限されます。バンクが増えると、他のバンクが開閉している間に1つのバンクに更新できます。)
ありがとう。
アップデート:
(プログラムが行うメモリアクセスを並べ替えることはできません)。
しかし、コンパイラーはループのネストを並べ替えることができますか?例:hpcc / RandomAccess.c
ここでのメインループはでfor (i=0; i<NUPDATE/128; i++) {
あり、ネストされたループはfor (j=0; j<128; j++) {
です。「ループ交換」最適化を使用して、コンパイラはこのコードをに変換できます
このループネストは完璧なループネストであるため、これを行うことができます。そのような最適化はHPCCの規則によって禁止されていますか?
server - 大規模なデータ操作によるデータ破損
最近、非常に奇妙なデータ破損の問題が発生しています。基本的に私がしていることは次のとおりです。
- 「scp」を使用して、1 つのサーバーから hpcc (ハイ パフォーマンス コンピューティング) にいくつかの大きなデータ (50 ファイル、それぞれ約 8 GB) を転送します。
- 入力ファイルの各行を処理し、それらの変更された行を出力ファイルに追加/書き込みます。そして、「qsub -t 1-1000 xxx.sh」によって hpcc でこれを行います。これは、1000 個のジョブすべてを同時に破棄します。また、これらの 1000 のジョブは、平均してそれぞれ 4GB のメモリを使用しています。
私のスクリプトの基本的な形式は次のとおりです。
また
ただし、奇妙な点は、時々、データの一部にデータの破損が見られることです。
まず、「入力」データの一部が破損していることに気付きました (すべてではない)。それが「scp」の問題かどうかは疑問です。私は何人かのコンピューター関係者に尋ね、ここにも投稿しましたが、「scp」がデータを歪める可能性はほとんどないようです。そして、「scp」を実行して、データを再びhpccに転送します。今回の入力データはOKになります。変ですよね?したがって、これは私に考えさせます: メモリ/CPU 使用率の高いプログラムを実行するために使用されることによって、入力データが中断される可能性はありますか?
入力データが壊れている場合、出力も壊れているのはごく自然なことです。次に、入力データを再び hpcc に転送し、それらすべてが良好な状態であることを確認します。次に、プログラムを実行します (1000 ジョブを一緒に実行することを指摘する必要があります)。出力ファイルは...ほとんどが良い; しかし、非常に驚くべきことに、たった 1 つのファイルの一部が破損しています。したがって、この特定のファイルに対してプログラムを単独で再度実行すると、破損することなく適切な出力が得られます!! 私はとても混乱しています......非常に多くの奇妙なことを見た後、私の唯一の結論は次のとおりです。多くのメモリ集約型ジョブを同時に実行すると、データが損なわれるのではないでしょうか? (しかし、私はそのような仕事もたくさん実行していましたが、大丈夫そうです)
データの破損とは、次のことを意味します。
このようなもの:
ただし、次のようにする必要があります。
hadoop - HPCC/HDFS コネクタ
HPCC/HDFSコネクタについて知っている人はいますか.HPCCとHADOOPの両方を使用しています.HPCCクラスタがHDFSデータにアクセスできるようにするHPCCによって開発されたユーティリティ(HPCC/HDFSコネクタ)が1つあります
コネクタをインストールしましたが、プログラムを実行して hdfs からデータにアクセスすると、libhdfs.so.0 が存在しないためエラーが発生します。
コマンドを使用してlibhdfs.soをビルドしようとしました
それは私にエラーを与えます
ターゲット「compile-libhdfs」がプロジェクト「hadoop」に存在しません
もう1つのコマンドを使用しました
その与えるエラー
アイビー ダウンロード:
/home/hadoop/hadoop-0.20.203.0/ivy/ivy-2.1.0.jar へ
ビルドに失敗しました java.net.ConnectException: 接続がタイムアウトしました
どんな提案も大きな助けになります
hpcc - NaN または IsNumeric に相当する ECL は何ですか?
値 (例: 42 または 41.0005) が ECL (HPCC) の数値であるかどうかを確認したい。次のような正規表現を使用する関数を念頭に置いています。
組み込みの IsNumeric 関数はありますか?
そうでない場合...正規表現を使用するよりも良い方法はありますか? (可読性とパフォーマンスの両方を考える)
- 多分ECLコマンド?
- STD機能?
- 鋳造?
- #GetDataType?
- str.filter?
注:古いバージョンの HPCC (2011) では、そのような機能は存在しなかったようです。しかし、それ以来、多くのリリースが行われました。
performance - ペタバイト規模のデータを大規模にロード
数ペタバイトのテキスト データを 1 秒以内にストレージ (RAM/SSD) にロードする必要があります。
以下は、上記の問題を解決するための質問の一部です。
1) 1 秒間に数ペタバイトのデータをロードすることは、現実的/理論的に可能ですか? 2) ペタバイト規模のデータを数秒で高速にロードするための最適な設計アプローチは何か。3) 利用可能なベンチマークアプローチはありますか?.
Hadoop、spark、HPCC など、あらゆる種類のテクノロジーを実装しても問題ありません...