製品
製品の一覧
Mathematica
Mathematica
学生エディション
Mathematica
ホームエディション
Wolfram
CDF Player
(無料ダウンロード)
CDF(計算可能ドキュメント形式)
web
Mathematica
grid
Mathematica
Wolfram
Workbench
Wolfram
SystemModeler
Wolfram
Finance Platform
Mathematica
アドオン
Wolfram|Alpha関連製品
ソリューション
ソリューションの一覧
工学
航空宇宙工学と防衛
化学工学
制御系
電気工学
画像処理
生産工学
材料科学
機械工学
オペレーションズリサーチ
光学
石油工学
バイオテクノロジーと医学
バイオインフォマティクス
医用画像処理
金融,統計,ビジネスの分析
保険数理
データの解析とマイニング
計量経済学
経済学
金融工学と数学
財務リスク管理
統計
ソフトウェア工学とコンテンツ配信
オーサリングと出版
インターフェース開発
ソフトウェア工学
Web開発
科学
天文学
バイオサイエンス
化学
環境科学
地球科学
社会・行動科学
デザイン,芸術,娯楽
ゲームデザイン・特殊効果・ジェネレーティブアート
教育
高等教育
短大・専門学校
初等・中等教育
学生
テクノロジー
CDF(計算可能ドキュメント形式)
高性能並列計算(HPC)
参照:テクノロジーガイド
ご購入
オンラインストア
他の購入方法
Volumeライセンスとサイトライセンス
販売部へのご連絡
ソフトウェア
サービス
アップグレード
トレーニング
書籍
Wolframグッズ
サポート
テクニカルサポートページ
Mathematica
ドキュメント
知識ベース
ラーニングセンター
テクニカルサービス
コミュニティ & フォーラム
トレーニング
サイトライセンスの確認
Wolframユーザポータル
会社概要
会社概要
ニュース
イベント
Wolframブログ
パートナーシップ
採用情報
Mathematica
の歴史
Stephen Wolframのホームページ
連絡先
Wolfram Webサイト
サイトの一覧
Wolfram|Alpha
デモンストレーションプロジェクト
MathWorld
Integrator
Wolfram Functions Site
Mathematica Journal
Wolfram Media
Wolfram
Tones
Wolfram Science
Stephen Wolfram
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE
DOCUMENTATION CENTER
FOR THE LATEST INFORMATION.
DOCUMENTATION CENTER SEARCH
New to
Mathematica
?
Find your learning path
»
Mathematica
>
システムインターフェースと配備
>
並列計算
>
データの並列性
>
ParallelMap
>
Mathematica
>
コアとなる言語
>
調整とデバッグ
>
並列計算
>
データの並列性
>
ParallelMap
>
MATHEMATICA 組込みシンボル
Map
ParallelTry
ParallelTable
Parallelize
DistributedContexts
関連項目 »
|
データの並列性
並列計算
バージョン7.0の新機能のまとめ
バージョン7.0の新機能:アルファベット順のリスト
バージョン7.0の新機能:コアとなる言語
バージョン7.0の新機能:システムインターフェースと配備
その他 »
ParallelMap
ParallelMap
expr
の第1レベルの各要素に
f
を並列適用する.
ParallelMap
levelspec
で指定された
expr
の部分に
f
を並列適用する.
詳細
ParallelMap
は
Map
の並列版で,自動的に異なるカーネルとプロセッサ間に
f
をさまざまに分配適用する.
ParallelMap
は,計算中の副次的な作用を除き,
Map
と同じ結果を返す.
ParallelMap
は
Map
と同じレベル指定を使う.すべてのレベル指定が並列化できる訳ではない.
Parallelize
[
Map
[
f
,
expr
]]
は
ParallelMap
と等価である.
ParallelMap
のインスタンスが並列化できない場合,そのインスタンスは
Map
を使って評価される.
ParallelMap
は
Parallelize
と同じ
Method
オプションを取る.
ParallelMap
は
ParallelTable
と同じ
DistributedContexts
オプションを取る.
例題
すべて閉じる
例
(3)
ParallelMap
は並列で
Map
と同じように作用する:
ParallelMap
は任意の関数と一緒に使うことができる:
明示的な純関数を使う:
インタラクティブに定義された関数はすぐに並列で使用できる:
ParallelMap
は並列で
Map
と同じように作用する:
In[1]:=
Out[1]=
In[2]:=
Out[2]=
ParallelMap
は任意の関数と一緒に使うことができる:
In[1]:=
Out[1]=
明示的な純関数を使う:
In[2]:=
Out[2]=
インタラクティブに定義された関数はすぐに並列で使用できる:
In[1]:=
In[2]:=
Out[2]=
スコープ
(6)
レベル1でマップする(デフォルト):
レベル2までマップする:
レベル2でマップする:
レベル3までマップする:
レベル1から始めてすべてのレベルでマップする:
負のレベル:
正負のレベルを混ぜてもよい:
各レベルに異なる頭部:
すべてのレベルが並列化できる訳ではない:
一般化と拡張
(2)
ParallelMap
は任意の頭部の式に使うことができる:
属性
Listable
を持つ関数は自動的にマップされる:
オプション
(11)
計算を実行可能な最小のサブユニットに分割する:
計算を使用可能なカーネル数に分割する:
カーネル1個の計算の評価数が最大でも2つになるようにジョブ全体を分割する:
各評価の要素数が最高でも5つになるように計算を分割する:
デフォルトのオプション設定では評価のサイズと評価数のバランスが取られる:
ランタイムが大きく異なる計算はできるだけきめ細かく並列化しなければならない:
多数の簡単な計算は可能な限り少ないまとまりとして分配されるべきである:
デフォルトで,現行コンテキストの定義は自動的に配布される:
関数の定義は配布しない:
並列計算に現れるすべてのコンテキストのすべての記号の定義を配布する:
指定されたコンテキストの定義だけを配布する:
DistributedContexts
オプションの値をデフォルト値に戻す:
アプリケーション
(2)
結果が求まるたびに現れるのを見る:
算術パズルを解く:
上記を記号形式で書く:
各文字に一桁の数字を割り当てる:
次に各単語を底が10の数字として解釈する:
特定の数字の割当ての検証を自動化する:
この割当てを組織的に解くために,まず文字のリストを得る:
8つの数字のすべての部分集合のすべての順列を考えることでこのパズルを解くことができる:
上記を並列化する:
一般に
の解のみが考慮される:
ParallelTry
を使い,自明ではない解が見付かったところで検索を中止することもできる:
特性と関係
(9)
並列化は使用されている最も外側のレベルで行われる:
Map
は,事実上
ParallelMap
を使って自動的に並列化される:
サイズが分かっているタスクでロードのバランスを取った効果を示す:
ランタイムが分かっているタスクの数を定義する:
並列実行の時間を測る:
スピードアップ(大きいほどよい):
スケジューリングのキメが細かいほどロードのバランスがよくなりスピードアップにも繋がる:
大きなタスクを最初にスケジュールすると結果がさらによくなる:
複数の引数を持つ関数は
MapThread
で並列化することができる:
Parallelize
を使って並列化バージョンを得る:
MapIndexed
は要素の指標をマップされた関数に渡す:
Parallelize
を使って並列化バージョンを得る:
Scan
も
Map
と同じことを行うが結果は返さない:
インタラクティブに定義された関数は必要なときに自動的にすべてのカーネルに配布される:
手動で定義を配布し自動配布を停止する:
パッケージからの関数には,
DistributeDefinitions
より
ParallelNeeds
を使うとよい:
考えられる問題
(6)
レベル指定が並列化を妨げている場合,
ParallelMap
は
Map
のような評価を行う:
並列でマップされた関数では副次的な効果は使えない:
副次的な効果をサポートする共有変数を使う:
並列カーネルにとって既知ではない関数を使うと計算が順番に行われることがある:
すべての並列カーネルで関数を定義する:
これで,関数が並列カーネルで評価されるようになった:
現行コンテキストの関数の定義は自動的に配布される:
デフォルトコンテキスト以外のコンテキストからの定義は自動的には配布されない:
DistributeDefinitions
を使ってそのような定義を配布する:
すべてのコンテキストを含むように
DistributedContexts
オプションを設定することもできる:
簡単な操作は並列化した方が時間がかかることがある:
最小の並列伝達のオーバーヘッドを測る:
マスターカーネル自身で行われた簡単な計算と比べる:
関数が短い引数リストを簡約することはあるが,リストが長いと簡約は行われない:
部分式のこのような簡約は並列マッピングを不可能にすることがある:
部分式の簡約を阻止し最後にのみ所望の関数を適用する:
関連項目
Map
ParallelTry
ParallelTable
Parallelize
DistributedContexts
その他
データの並列性
並列計算
バージョン7.0の新機能のまとめ
バージョン7.0の新機能:アルファベット順のリスト
バージョン7.0の新機能:コアとなる言語
バージョン7.0の新機能:システムインターフェースと配備
バージョン 7 の新機能 | バージョン 8 での修正機能