[SCore-users-jp] fork(),execl()を使用したプログラムの並列化(2)

増田 尚美 n-masuda @ sp.nas.nec.co.jp
2003年 5月 29日 (木) 11:23:55 JST


長谷川様

増田です。
お世話になっております。

ご回答ありがとうございます。


> fork, execlで、./main を実行されたのでしょうか?

わかりづらい説明で申し訳ありません。
./main はコマンドラインからの実行です。
例えば、実行モジュールが
  main
    subpro1
    subpro2
とあった場合に、subpro1,subpro2をmainから
fork,execlして起動させようとしています。


> MPI,OpenMP共に評価した事がないので保証できませんが、fork, execl自体は
> 動作すると思います。ただ、execlで、SCoreのプログラム(OpenMPやMPIで書か
> れたプログラム)を実行した場合、動かないはずです。

了解しました。
上記に示したsubpro1,subpro2もMPI,OpenMPを使用したプログラムになっています。
これをexeclで起動させている為に、動作が不安定なのですね。

execlのように一般的に使用しているようなシステム関数が
SCore環境下では動作保証されていないというような情報は
どこからか入手できるものでしょうか?
もし、ご存知であれば教えていただければありがたいです。


> 上記のエラーは、また、別の問題で出ていますが、これを修正したとしても、
> Omni OpenMPの実装上、そういう実行はできません。

OpenMPのエラーはおそらく書式の組み込みの問題ですね。
このエラーについては、もう少しOpenMPの勉強をします。


> "#pragma omp parallel" で、並列化して使用する事を前提としています。
> pthreadと併用する事は考慮していませんので、OpenMPのruntime libraryで問
> 題が出ると思われます。

了解しました。
実際にどうなるものか、一度試してみたいと思います。


> 何をされたいのか判らないのですが、scrun実行時に、必要なノードを確保し
> て実行するというのでは、ダメなのでしょうか?

既に子プロセスやスレッドを多用したシステムが存在して
それを流用してSCore環境下で、動作させた場合にどれほどの影響が
でるかを調査しています。
 ・Score環境下で動作させることを前提として設計からやり直すべきか
 ・流用した場合のバグの作りこみ等の危険性
 ・MPI、OpenMPどちらを使用するのが適当か
等々です。

SCoreが、そもそも処理の分散化を目的としているわけなので
処理分散させる為に、子プロセスやスレッドを生成しているプログラムを
流用するという考え方に無理があるのでしょうか?

実際にSCore環境下で動作するシステムを見たことがないので
ばかげた質問かもしれませんが。。
SCore環境下で動作させようとする場合
一般的には、実行モジュールはひとつにするものなのでしょうか?
つまり、子プロセスやスレッドを生成する必要性はないものなのでしょうか?

以上です。
よろしくお願いいたします。




SCore-users-jp メーリングリストの案内