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[Map] - MPI プロセスを終了
使い方
Map( f, expr )
Map( f, expr, arg1, arg2, ..., argN )
パラメータ
f
-
プロシージャまたは関数
expr
任意の式
argN
(オプション) f の追加の引数
説明
Map コマンドは、expr のオペランドまたは要素に対して並列に f を適用します。これは、Threads[Map] に似ていますが、f の処理が別々のスレッドではなく別々のプロセスで行われるところが違います。
Map コマンドは、expr のオペランドまたは要素に対して並列に f を適用します。典型的な呼び出しシーケンスは Map(f, [1,2,...,n]) で、これで各要素に f が適用され新しいリスト [f(1), f(2), ..., f(n)] が作成されます。同様に Map(f,[1,2,...,n],a,b) は、Map 内の追加の引数を f の各コールに適用し、[f(1,a,b), f(2,a,b), ..., f(n,a,b)] を戻します。各 f(i) の計算は利用可能なノード全てに公平に配分されます。
Map コマンドは、トップレベルコマンド map と、Threads[Map] コマンドに似ています。トップレベルコマンド seq は数列全体を直列的に処理します。Threads[Map] コマンドは、数列の要素を同一プロセス内で別々のスレッドに乗せて並列に処理します。Grid[Map] コマンドは、数列の要素を別々のプロセスに乗せて並列に処理しますが、この場合はプロセスを複数マシンに分配することも可能です。
Map は並列計算の全ノードで呼び出されることを想定しています。グリッド外の非計算ノードから、並列計算の一部としてでなく呼び出された場合、Map は Launch コマンドにより全ノードで同コマンドを起動しようとします。そのとき、f を解析し、f 内にあるアサインされた値を各グリッドノードに予め入れておきます。この方法でほとんどのケースに対応できますが、頑健な方法ではありません。
Map は Send と Receive コールを利用した高水準コマンドです。従って、f からの Send や Receive への呼び出しは避けてください。
Map は expr の一部を各ノードに転送しなければならないので、f が些細なプロシージャのときには効率が悪い方法です。
Map の計算結果はノード 0 でのみ利用可能です。結果として得られる Maple 数式を使って他のノードでさらに計算を進める場合、Send と Receive を用いて直接送る必要があります。
この関数は Grid パッケージに含まれているので、コマンド with(Grid) を実行してからのみ 短縮形 Grid(..) で呼び出せます。原形 のコマンド Grid[Map](..) を使えばいつでも利用できます。
互換性
Grid[Map] コマンドは Maple 15 より導入されました。
Maple 15 の変更点についての詳細は、Maple 15 の更新情報 をご覧ください。
例
Grid:-Map(x->x^2,[1,2,3]);
Grid:-Map((x,y)->x^2+y,<1,2;3,4>,4);
expr := randpoly([x,y,z],terms=20);
Grid:-Map(x->abs(x),expr);
Grid:-Map(x->x^2,table({1=1,2=2,3=3,red=4,blue=y}));
p := proc() uses Grid; Map(x->x^3,[1,2,3]) end;
Grid:-Launch(p);
参照
Grid, Grid[Seq]
Download Help Document