製品・サービス > スーパーコンピューティング > HarmonyCalc > 既知の問題点
HarmonyCalc/既知の問題点

■バージョン3.00の問題点

1.HCSetOperateOptionsルーチンが正しく動作しない。
2.DelphiまたはC++Builderのプログラムが、突然異常終了することがある。
3.サーバWindowsで動作させると、処理時間が著しく長くなることがある。
4.マルチコアのコンピュータで、PatternMatchサンプルプログラムの処理時間が著しく長くなる。
5.ネットワークが切断されても、クライアント側で例外が発生しないことがある。

■バージョン2.00の問題点

1.ノードマネージャが動作していると、パソコンのシャットダウンができない。


■バージョン1.00の問題点

1.ノードマネージャでバッチファイルを起動させると、プログラムを起動させることができなくなる。
2.大容量のファイルデータやメモリデータを扱っていると、突然異常終了する。
3.エージェント側でエラーが発生しても、クライアント側で例外が発生しない。
4.Delphi版サンプルプログラムで、処理完了率が表示されない。また処理中断ができない。

■バージョン3.00の問題点

1.HCSetOperateOptionsルーチンが正しく動作しない。
最新バージョンのHarmonyCalcでは、まだHCSetOperateOptionsルーチンが実装されておりません。大変申しわけございませんが、しばらくお待ちくださいますようお願い申し上げます。

「既知の問題点」に戻る

2.DelphiまたはC++Builderのプログラムが、突然異常終了することがある。
Delphi・C++Builderに付属するメモリマネージャが、デフォルトではマルチスレッドを想定した排他制御を行っていないため、稀にアクセス違反が発生します。HarmonyCalcはプログラムをマルチスレッドで動作させるので、メモリマネージャの排他制御が必要です。

バージョン3.00bに付属するインタフェースファイルには、この問題を回避するための処理が追加されております。バージョン3.00a以前に付属するインタフェースファイルをお使いの場合には、この問題を回避するため、HCInitializeルーチンを呼び出す前に、IsMultiThreadグローバル変数にTrueまたはtrueを代入する処理を追加してください。IsMultiThreadグローバル変数は、メモリマネージャに対する排他制御を行うかどうかを決めるものです。

「既知の問題点」に戻る

3.サーバWindowsで動作させると、処理時間が著しく長くなることがある。
サーバWindows(Windows Server、Windows Compute Cluster Server、Windows HPC Serverなど)でHarmonyCalcプログラムを動作させると、クライアントWindows(Windows 2000、Windows XP、Windows Vistaなど)で動作させるよりも非常に長い処理時間がかかることがあります。これは、実行に長い時間のかかるDNS(動的名前解決)サービスの動作によるものです。

この問題を回避するには、サーバWindowsのデフォルトで有効になっているDNSサービスを無効にしてください。

「既知の問題点」に戻る

4.マルチコアのコンピュータで、PatternMatchサンプルプログラムの処理時間が著しく長くなる。
マルチコアのコンピュータで、PatternMatchサンプルプログラム(Delphi版またはC++Builder版)を並列動作させると、並列動作させない時よりも処理時間が長くかかることがあります。これはピクセル値を取得する部分に、不要な排他制御がかけられているバグによるものです。このバグは、バージョン3.00bでは修正されております。

バージョン3.00a以前をお使いの場合、次のようにサンプルプログラムを修正すると不具合は見られなくなります。
開発言語 ファイル・修正箇所 修正方法
Visual C++ .NET
(MFC)
AgentView.cpp
  CAgentView::CalcDifference
修正不要です。
Delphi AgentMain.Pas
  DoOnExecuteTask-
    CalcDifference
(修正前)
PictureBitMap.Canvas.Lock;
PatternBitMap.Canvas.Lock;
PictureColor:=PictureBitMap.Canvas.Pixels[X+XOfft,Y+YOfft];
PatternColor:=PatternBitMap.Canvas.Pixels[ XOfft, YOfft];
PictureBitMap.Canvas.Unlock;
PatternBitMap.Canvas.Unlock;
(修正後)
{<======= 2行削除 }
PictureColor:=PictureBitMap.Canvas.Pixels[X+XOfft,Y+YOfft];
PatternColor:=PatternBitMap.Canvas.Pixels[ XOfft, YOfft];
{<======= 2行削除 }
C++Builder AgentMain.CPP
  TMainForm::CalcDifference
(修正前)
PictureBitmap->Canvas->Lock;
PatternBitmap->Canvas->Lock;
PictureColor=PictureBitmap->Canvas->Pixels[X+XOfft][Y+YOfft];
PatternColor=PatternBitmap->Canvas->Pixels[ XOfft][ YOfft];
PictureBitmap->Canvas->Unlock;
PatternBitmap->Canvas->Unlock;
(修正後)
//<======= 2行削除
PictureColor=PictureBitmap->Canvas->Pixels[X+XOfft][Y+YOfft];
PatternColor=PatternBitmap->Canvas->Pixels[ XOfft][ YOfft];
//<======= 2行削除

「既知の問題点」に戻る

5.ネットワークが切断されても、クライアント側で例外が発生しないことがある。
ネットワークの切断により、エージェントノードからの終了通知をクライアントノードが受け取ることができなかった場合、エージェント側では例外が発生しますが、クライアント側でそのことを知ることができず、ずっと待ってしまいます。

この問題を回避するため、HCOperateルーチンの実行中に定期的にシステムを監視し、異常が見つかればHCOperateルーチンを終了させて例外を発生させる機能を追加する予定です。

「既知の問題点」に戻る

■バージョン2.00の問題点

1.ノードマネージャが動作していると、パソコンのシャットダウンができない。
ノードマネージャがアイコン化されてタスクトレイに入っている状態では、Windowsの「ログオフ」・「シャットダウン」・「再起動」コマンドが完了しません。これはアイコン化されたノードマネージャがWindowsの終了要求を無視するために発生する不具合です。この問題は、バージョン3.00では解決されております。

バージョン2.00をお使いの場合、当面の対策としては、これらのWindowsのコマンドを使用する前に、ノードマネージャのアイコンを右クリックし、ウィンドウを表示させるようにしてください。

「既知の問題点」に戻る

■バージョン1.00の問題点

1.ノードマネージャでバッチファイルを起動させると、プログラムを起動させることができなくなる。
ノードマネージャの「すべてのエージェントを起動」コマンドを使い、バッチファイルや自動的に終了するプログラムを起動させると、それらが終了した後、他のプログラムを起動させることができません。 これはバッチファイルやプログラムが終了しても、そのことをノードマネージャが把握していないために生じる現象です。この問題は、バージョン2.00では解決されております。

バージョン1.00をお使いの場合、ノードマネージャを使ってプログラムを起動させたら、正しくプログラムが起動したことを必ず確認してください。もし起動しない場合には、ノードマネージャの「すべてのエージェントを停止」コマンドを使い、ノードマネージャにバッチファイルやプログラムが終了したことを知らせてください。

「既知の問題点」に戻る

2.大容量のファイルデータやメモリデータを扱っていると、突然異常終了する。
バージョン1.00は、データ伝送の際にメモリの断片化を発生させやすい構造になっています。そのため一定の限界を越えるサイズのデータを繰り返し伝送していると、最後にはメモリを確保することができなくなり、システムエラーが発生します。この問題は、バージョン2.00では解決されております。

バージョン1.00をお使いの場合、データサイズの限界は、メモリ容量が1Gバイトのパソコンで約200Mバイト、2Gバイトのパソコンで約300Mバイトとなります。これよりも大きいデータを伝送させることは避けてください。

「既知の問題点」に戻る

3.エージェント側でエラーが発生しても、クライアント側で例外が発生しない。
バージョン1.00では、エージェント側で発生した一部のエラーがクライアント側に伝達されず、場合によっては戻ってこない返信を待ち続けることになってハングアップします。これはHarmonyCalcのバグに起因する不具合です。この問題は、バージョン2.00では解決されております。

「既知の問題点」に戻る

4.Delphi版サンプルプログラムで、処理完了率が表示されない。また処理中断ができない。
バージョン1.00に付属のMandelbrot・PatternMatchサンプルプログラム(Delphi版)では、動作中に処理完了率が表示されず、また「中止」ボタンを押しても何も起こりません。これはサンプルプログラムのバグに起因する不具合で、Visual C++ .NET (MFC)版とC++Builder版では見られません。この問題は、バージョン2.00では解決されております。

バージョン1.00をお使いの場合、次のようにサンプルプログラムを修正すると不具合は見られなくなります。
開発言語 サンプル ファイル・修正箇所 修正方法
Visual C++ .NET
(MFC)
Mandelbrot MainFrm.cpp
  CMainFrm::DoOnCreate
修正不要です。
PatternMatch PatternMatchView.cpp
  CPatternMatchView::DoOnCreate
修正不要です。
Delphi Mandelbrot ClientMain.Pas
  TMainForm.DoOnCreate
(修正前)
Processing:=True;
(修正後)
Processing:=False;
PatternMatch ClientMain.Pas
  TMainForm.DoOnCreate
(修正前)
Processing:=True;
(修正後)
Processing:=False;
C++Builder Mandelbrot ClientMain.CPP
  TMainForm::DoOnCreate
修正不要です。
PatternMatch ClientMain.CPP
  TMainForm::DoOnCreate
修正不要です。

「既知の問題点」に戻る

トップページへ
「スーパーコンピューティング」へ
「HarmonyCalc」へ
「HarmonyCalc/特長」へ
「HarmonyCalc/よくある質問」へ
「HarmonyCalc/ダウンロード」へ