Maple für Professional
Maple für Akademiker
Maple für Studenten
Maple Personal Edition
Maple Player
Maple Player für iPad
MapleSim für Professional
MapleSim für Akademiker
Maple T.A. - Testen & beurteilen
Maple T.A. MAA Placement Test Suite
Möbius - Online-Courseware
Machine Design / Industrial Automation
Luft- und Raumfahrt
Fahrzeugtechnik
Robotics
Energiebranche
System Simulation and Analysis
Model development for HIL
Anlagenmodelle für den Regelungsentwurf
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematikausbildung
Technik
Allgemein- und berufsbildende Schulen
Testen und beurteilen
Studierende
Finanzmodelle
Betriebsforschung
Hochleistungsrechnen
Physik
Live-Webinare
Aufgezeichnete Webinare
Geplante Veranstaltungen
MaplePrimes
Maplesoft-Blog
Maplesoft-Mitgliedschaft
Maple Ambassador Program
MapleCloud
Technische Whitepapers
E-Mail Newsletters
Maple-Bücher
Math Matters
Anwendungs-Center
MapleSim Modell-Galerie
Anwenderberichte
Exploring Engineering Fundamentals
Lehrkonzepte mit Maple
Maplesoft Welcome-Center
Resource-Center für Lehrer
Help-Center für Studierende
Grid[Send] - ノードから他ノードへメッセージを送信
使い方
Send( node, msg )
パラメータ
node
-
メッセージの送信先ノードを表す整数
msg
送信するメッセージ(任意の Maple 表現)
説明
Send は、並列計算の過程で実行される Maple コードから利用するためのコマンドです。
並列ジョブが N 個のサーバー上で起動されたとします。この計算中、各サーバーは 0 から N-1 までの整数の識別番号を割り当てられます。node パラメータは、メッセージの送信先ノードを識別する整数値を指定します。
msg パラメータは NULL と表現列を含めた任意の Maple 表現が利用可能です。モジュール など、ラストネームエバリュエーション 規則の適用を受ける表現を含む入れ子構造の場合は、完全なサブ表現への展開は送信されません。
グリッドサーバーの受信バッファーは、利用可能なメモリの量だけに制限されます。つまり、Send コマンドはネットワーク上でデータを伝送している時間だけブロックすることになります。
送信先ノードが Receive コマンドでメッセージを受信する前に Send コマンドは戻ります。戻り値は必ず NULL になります。
全ノードが、計算終了かメッセージ待ちの状態になるとデッドロックが発生します。このようなデッドロックは検知され、ジョブは自動的に中止されます。
互換性
Grid[Send] コマンドは Maple 15 から導入されています。
Maple 15 の変更点についての詳細は、Maple 15 の更新情報 をご覧ください。
例
この例では、ノード 0 はノード 1 にメッセージを送り、ノード 1 はそれに内容を追加してノード 2 に送り、という操作を繰り返します。全ノードがメッセージを見たら、最後の結果をノード 0 に送り返します。
circ := proc() uses Grid; local r, me := MyNode(), n := NumNodes(); if me = 0 then Send(1,0); r := Receive(n-1); else r := Receive(me-1); Send(me+1 mod n, r, me); end if; end;
[ Grid:-Launch(circ,numnodes=4) ];
参照
Grid, Grid[Receive]
Download Help Document