CompilationTarget

CompilationTarget

Compileのオプションで,コンパイルされた関数のターゲットランタイムを指定する.

詳細

  • CompilationTargetは関数をコンパイルする際に適用される.
  • 使用可能な設定値
  • "WVM"Wolfram仮想マシン
    "C"Cコード
  • CompilationTarget -> "WVM"は,従来のWolframシステム仮想マシンのコードを作成する.
  • CompilationTarget -> "C"はCコードを作成する.これは,外部マシンのコードライブラリにコンパイルされ,Wolfram言語にリンクされて戻される.
  • "C"のターゲット指定時に作成される外部ファイルは,使用後あるいはWolframシステムの終了時に削除される.
  • Cコードをターゲットとするためには適切な外部Cコンパイラが必要である.外部コンパイラが見付からなければ,Wolframシステムは"WVM"を使用する.
  • "C"あるいは"WVM"のどちらかのターゲットが指定されると,下記の追加設定が使用可能になる.
  • RuntimeAttributes -> ListableListable属性を有する関数をコンパイルする
    Parallelization -> True可能な場合複数のスレッドを使おうとする

例題

すべて開くすべて閉じる

  (3)

CompileからCコード生成がターゲットにできる:

次はCコードを使ってコンパイルしている:

Cコードの生成の方が速く実行できる:

WVMを使ったデフォルト操作の方が遅い:

Cコード生成と並列操作を組み合せるとさらに速くなる:

おもしろい例題  (1)

マンテルブロ集合のリアルタイムプロット.CのCompilationTargetの計算を使った並列化は画像を十分リアルタイムで更新できるだけ速い.

まず,値を計算するためのコンパイルされた関数:

次に,結果を表示しインタラクションを操作するためのビューアをプロットする:

これで関数を呼び出すことができる.これはコマンドを評価するために必要な絵とインタラクトするための画像である点に注意のこと:

Wolfram Research (2010), CompilationTarget, Wolfram言語関数, https://reference.wolfram.com/language/ref/CompilationTarget.html.

テキスト

Wolfram Research (2010), CompilationTarget, Wolfram言語関数, https://reference.wolfram.com/language/ref/CompilationTarget.html.

CMS

Wolfram Language. 2010. "CompilationTarget." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CompilationTarget.html.

APA

Wolfram Language. (2010). CompilationTarget. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CompilationTarget.html

BibTeX

@misc{reference.wolfram_2024_compilationtarget, author="Wolfram Research", title="{CompilationTarget}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/CompilationTarget.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_compilationtarget, organization={Wolfram Research}, title={CompilationTarget}, year={2010}, url={https://reference.wolfram.com/language/ref/CompilationTarget.html}, note=[Accessed: 22-November-2024 ]}