Grid[Interrupt] - 指定したノードで計算を中断
|
説明
|
|
•
|
Interrupt コマンドは、指定した外部ノードで実行されている計算を中断します。
|
•
|
ノード 0 は中断できません。(並列ジョブ全体を中断することになってしまうため)
|
•
|
あるノードが自身を中断することも禁止されています。
|
•
|
ノードを中断する場合、そのノードからメッセージを待つ他のノードがブロックされてしまい、デッドロックが起きる可能性があります。そのようなデッドロックは検知し、ジョブは自動的に中止されます。
|
•
|
mpi モードで Grid パッケージ実行したとき、Interrupt は実装されません。その場合、呼ぶことはできますが効果は何もありません。
|
•
|
この関数は Grid パッケージに含まれているため、コマンド with(Grid) を実行した後でなければ Grid(..) という 短縮形 は利用できません。ただし、Grid[Interrupt](..) という 標準形 はいつでも利用できます。
|
|
|
互換性
|
|
•
|
Grid[Interrupt] コマンドは Maple 15 より導入されました。
|
|
|
例
|
|
>
|
p := proc()
uses Grid;
if MyNode()=0 then
Receive(); # wait for a message
elif MyNode()=1 then
# interrupt everybody else
for i from 2 to NumNodes()-1 do
Interrupt(i);
end do;
# notify node 0
Grid:-Util:-Send(0, true);
else
# all other nodes are in an infinite loop
while true do end do;
end if;
end proc;
|
Warning, `i` is implicitly declared local to procedure `p`
| |
| (5.1) |
| (5.2) |
|
|
Download Help Document
Was this information helpful?