Maple Professionel
Maple Académique
Maple Edition Étudiant
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professionel
MapleSim Académique
Maple T.A. - Suite d'examens de classement
Maple T.A. MAA Placement Test Suite
Möbius - Didacticiels de mathématiques en ligne
Machine Design / Industrial Automation
Aéronautique
Ingénierie des véhicules
Robotics
Energie
System Simulation and Analysis
Model development for HIL
Modélisation du procédé pour la conception de systèmes de contrôle
Robotics/Motion Control/Mechatronics
Other Application Areas
Enseignement des mathématiques
Enseignement de l’ingénierie
Enseignement secondaire et supérieur (CPGE, BTS)
Tests et évaluations
Etudiants
Modélisation financière
Recherche opérationnelle
Calcul haute performance
Physique
Webinaires en direct
Webinaires enregistrés
Agenda des évènements
Forum MaplePrimes
Blog Maplesoft
Membres Maplesoft
Maple Ambassador Program
MapleCloud
Livres blancs techniques
Bulletin électronique
Livres Maple
Math Matters
Portail des applications
Galerie de modèles MapleSim
Cas d'Etudes Utilisateur
Exploring Engineering Fundamentals
Concepts d’enseignement avec Maple
Centre d’accueil utilisateur Maplesoft
Centre de ressources pour enseignants
Centre d’assistance aux étudiants
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