ソフトウェアソリューション > 数学 - 開発言語 > Mathematica (マセマティカ) 8 日本語版
世界唯一の完全に統合された技術演算システム
新しい機能
新しい機能 V7 で追加
された機能
v6 で追加
された機能
v5.2 以前に
追加された機能

Mathematica 5.2 で追加された機能

Mathematica 5.2 では、業界の先陣を切ってすべての対応プラットフォームに 64-bit 技術が導入されました。その速度、活用範囲、拡張性において Mathematica は業界の一歩先をリードします。

Mathematica 5.2 では、以下に示す新しい機能およびツールの追加と、パフォーマンスの向上が図られています。


全プラットフォームで 64-bit アドレッシングをサポート

※Mathematica の 64-bit 対応によってユーザーは問題を解くに際して、非常に大規模な連立方程式の解を求めたり、あるいは、より高い精度で問題を解くことが可能となります。
64ビットコンピューティングによる津波の波及シミュレーション例

PC または Mac 環境で 64-bit 機能を利用するには、最新のハードウェアと各環境で動作する最新の OS が必要です。Mathematica 5.2 のサポートする UNIX コンピュータはいずれも 64-bit 機能を利用することができます。


主要プラットフォームにおけるマルチコアのサポート

マルチ CPU またはマルチコアコンピュータにおける数値線形代数のスレッディングを全プラットフォームでサポートします。

マルチコアテクノロジーによる各種演算の高速化:
シングルコア()と8コア()における計算時間の比較

ベクトルベースのパフォーマンスの向上

ベクトル、行列、浮動小数点の配列といった要素的な機能を高速化することによって、全体的な高速化が主要プラットフォームで実現します。CPU による最適化を経てベクトル化された Math ライブラリを利用することで、Mathematica 4 より実装された Packed array テクノロジーにおいて高速化が実現します。プラットフォームによっては、これらベクトル化されたライブラリがマルチコアテクノロジーを使用します。

ベクトルベースの各種関数の高速化

※Mathematica における計算の多くは、同一の数式の評価を何千回も繰り返します。例えば、プロットや数値積分、および、微分方程式の解における計算がそうです。Pentium 4 等の最新のプロセッサのベクトルユニットを利用することで、このような計算を極めて高速化することが可能となり、Mathematica 全体のパフォーマンスを向上させることができます。

gigaNumerics

gigaNumerics は高速数値計算を行う Mathematica テクノロジーのユニークな集合を表しています。Mathematica は専用の数値計算システムとは異なり、一般性と確度チェックでよく知られています。これらの特性があると、計算が実行されるたびに多くの余分な操作が生じるため、数値計算が遅くなるのが一般的でしょう。Mathematica は、まず入力をチェックして、機械精度と拡張精度のどちらで記号的に演算を行うかを決定します。確度チェックは計算中に行われ、必要に応じて計算の確度が上げられます。オーバーフローおよびアンダーフローは正しく察知・処理されます。

従来の数値計算システムは、このような手順を実行することができませんでした。しかし、この手順は数値計算の専門家ではない人が正確な答を求めるためには重要です。Mathematica はこれにより、入手可能なシステムの中で最も正確で汎用なものとなっています。

Wolfram Research が gigaNumerics で立ち向かった目標は、Mathematica の一般性と正確性を維持しながら、異例の計算スピードを実現するというものでした。この目標は、Wolfram Research で開発された以下のような gigaNumerics テクノロジーの組合せにより、達成されました。

Mathematica は計算だけのスピードという点で、バージョン 5 で初めて従来の専用数値計算システムのパフォーマンスを超えました。これは gigaNumerics テクノロジーの進歩により可能になったものです。gigaNumerics テクノロジーは Mathematica の一般性と正確さから見込まれるスピードの欠如を打ち消す以上のものです。従来の数値計算システムは記号的な前処理を実行するための統合された記号機能を持たないため、将来的に Mathematica のリードはもっと広がることが予想されます。


アルゴリズムの自動選択

自動アルゴリズム選択により、実行したいタスクを選ぶだけで Mathematica がそれに最適のアルゴリズムを選びます。 例えば、微分方程式を数値的に解きたいとします。Mathematica ではユーザが関数 NDSolve を選ぶだけで、NDSolve が正確な答を迅速に見付けるために数あるアルゴリズムの中からどれを使うかを決定します。手動で選ぶと、この選択を上書きすることもできます。従来のシステムでは、どの関数名 (ode113, ode23e 等 )が問題解決に最適であるかが分かっている必要があり、自分でアルゴリズムを選ばなければなりません。

Mathematica の自動アルゴリズム選択は、計算の初めに入力に基づいたアルゴリズムを選ぶだけではありません。選択した方法の成功具合によって、あるいは次の段階での最適化のために、計算の途中で別のアルゴリズムに変更することもできます。この機能は、通常の場合、自動アルゴリズム選択が手動アルゴリズム選択に優ることを意味しています。

自動アルゴリズム選択の主要な利点は、ユーザがたとえアルゴリズムについて専門的な知識を持っていなくても、正確な結果が迅速に得られるという点です。実際、これにより大部分のユーザが実行できる計算の成功範囲が劇的に変化しました。アルゴリズム知識がより特化され、ソフトウェアパッケージで使用可能な計算の幅が増大するに従って、これはますます重要なものとなっています。

自動アルゴリズム選択と共に実装されている、入力にシンボル、厳密数、近似 (任意精度) 数が含まれるかどうかを判定する機能も Mathematica の重要な別の機能のひとつです。それぞれの場合について適切なアルゴリズムが自動的に選択され、入力の種類に応じた結果が出力されます。

例えば、Solveに記号的に指定された等式が与えられると、Mathematica は結果をシンボルで生成しようとします。機械精度の入力が与えられたら、Solveは適切な数値計算アルゴリズムを利用し、機械精度の数値解を出力しようとします。このような場合でもユーザは異なる関数の呼出しを使う必要はありません。

Mathematica は1988年のリリースで、大規模な自動アルゴリズム選択の実装の草分けとなりました。それ以降、アルゴリズムの範囲、高度な選択法、自動アルゴリズム選択が動作する関数の数は飛躍的に増加しました。今日このようなアプローチを取る技術システムは、他にはありません。


アルゴリズム知識の深さ

Mathematica には、数値計算、記号計算、グラフィックス、汎用プログラミング等、多くの分野をカバーする何千もの関数が含まれています。Mathematica の数学的アルゴリズムのコレクションだけでも、公表されているアルゴリズムのほとんどに加え、独自のアルゴリズムが多く含まれています。 この独自のアルゴリズムは、Wolfram Research 内での16年以上に渡る徹底した調査・開発の成果です。

Wolfram Research の数学者やコンピュータアルゴリズムの専門家は、それぞれの分野における進歩や開発に積極的に貢献しており、最先端の知識や研究内容を Mathematica の新バージョンに組み込もうと日夜努力しています。 多数の組込み組込みアルゴリズムの数だけでも Mathematica は第一線の技術計算パッケージといえますが、アルゴリズムの数は Mathematica の知識ベースがパワフルになる要因の一部に過ぎません。

Mathematica のユニークな特徴は、Mathematica のデータとプログラムがすべて同様に記号式であるという点です。つまり、すべての Mathematica 関数が、関連のある他の Mathematica 関数への入力を提供したり、そのような関数からの出力を受け入れたりすることができるということです。 上記のことにより、Mathematica 関数は異なるアルゴリズムと方法を組み合せて最適な結果を生成することができるのです。

例えば、微分方程式の数値解法のための Mathematica 関数である NDSolve は、まず微分方程式系を記号的に解析し、それを数値計算に最適化された形式に変換し、最適の解法アルゴリズムを選びます。それから、数値ソルバを実行する前に、効率を最大にするために方程式をコンパイルします。Mathematica は評価の間、絶え間なく解法のプロセスを分析し、必要に応じて剛性・非剛性のソルバを切り換えるのです。このアルゴリズムの自動選択プロセスもまた、Mathematica のユニークなテクノロジーといえます。

Mathematica の記号プログラミングパラダイムを介して結合されるアルゴリズムが豊富にあるということは、新しく洗練されたアルゴリズムが、さほど苦労することなく実装できることがよくあることを意味します。新しいアルゴリズムは、多くの既存のアルゴリズムに依存できるからです。実際、多くの Mathematica 関数がそれまでに使用されたことのないサブアルゴリズムを結合します。例えば、数値関数が記号的なアルゴリズムを使ったり(例:FindMinimum で非線形最小 2 乗問題を認識する、あるいは導関数や勾配を記号的に計算する)、記号関数が数値的アルゴリズムを使ったり (例:数値的不等式を安全に証明する) します。

すべてのアルゴリズムは、どのように動作するかではなく、何を行うかによって、Mathematica 関数に組み込まれています。つまり、Mathematica ユーザはアルゴリズムを利用するために、アルゴリズムの名称、その構造、使用できる範囲、制限等を知っている必要はないのです。


ドキュメント中心のノートブックインターフェース

Mathematica ノートブックは、従来のダイアログボックスベースのアプローチから離脱したもので、今日存在するユーザインターフェースへのドキュメント中心アプローチの中で、最高のものということができます。 従来のグラフィカルユーザインターフェース (GUI) ではアクションにはダイアログボックスを使い、アクションが作用するユーザデータにはドキュメントを使います。ダイアログボックスはスクロールせず、ボタンやメニュー等のレイアウトが決まっているのに対し、ドキュメントはスクロールし、必要に応じてサイズが大きくなり、インタラクティブな構造とアップデート可能な内容を含んでいます。 ドキュメント中心のインターフェース (DCI) アプローチでは、アクション、アクションに対するコントロール要素、構造情報がすべてドキュメント自体のユーザデータと共に存在します。

技術系ユーザにとって、このアプローチは特に利点の多いものです。技術系ユーザのデータは、通常のドキュメントの線形なテキスト構造に比べると、構造も内容も非常に複雑なものです。理想的には、技術文書は編集可能な2次元にタイプセットされた数式、変換可能なグラフィックス、結果が現れるにつれての自動フォーマットを含む「生きた」ものでなければなりません。基本的に、技術文書にはドキュメント内から実行できるアクションが必要です。従来のGUIアプローチにおけるアクションとドキュメント間のバリアは、効率的なワークフローには大きな障害となっています。特に共同作業の場合にそう言えます。DCI アプローチでは、アクションはどのドキュメントにも組み込まれ、他の人に送って再適用や変更を行うこともできます。

ドキュメント中心のインターフェースの簡単な例として、標準 HTML の Web ページがあります。これは構造、リンク、入力ボックスを提供しますが、高度なインタラクションができず、他の要素もありません。近年、XML がドキュメント中心のインターフェース仕様に、技術コミュニティに関連する機能である MathML と SVG のサポート等のより広範な構造を提供し始めています。

Mathematica ノートブックは 1988 年に最初にリリースされて以来、DCI アプローチを完全に使用しています。ノートブックインターフェースはワープロのような基盤と明確に定義された「セル」という概念を統合します。セルはテキストの段落のように、スクロールウィンドウに縦に並びます。 セルはテキストを入力、出力、テキスト、グラフィックス、ヘディング等に視覚的にも機能的にも分けるので、重要なものです。それでも、Mathematica ノートブックのすべての要素はMathematica 言語で書かれた簡単な式なのです。他の制限的なインターフェースモデルとは異なり、セルは非常に柔軟で、いかなる形式あるいはサイズの式もサポートでき、内容の編集や挿入も簡単で、大規模な計算やドキュメントでは簡単に拡張できます。

ノートブック構造は、ユーザが技術的タスクを行うことのできる最適化された環境を提供するだけでなく、結果の包括的なレポートや発表資料を作成するのにも非常に効率的なツールであることが証明されています。ほとんどのアプリケーションソフトウェアでは、ユーザと開発者の間に深い溝があります。Mathematica では、ユーザの作業が進むにつれて、将来同様の問題を解く場合に便利なツールとなる (ノートブック) ドキュメントのアウトラインが、自動的に作成されていきます。 ユーザは最小限の改訂と注釈で、作業内容をノートブックに変換し、同僚に送ることができます。受け取った同僚は、入力を変更し、アルゴリズムを少し変え、わずかの時間で自分の問題を調査することができます。

このように、実質的に「ユーザ」自身が、他の人が使うことのできるツールの開発者となるのです。 ユーザは Mathematica の機能の操作方法を学び、必要や興味に応じて、ボタン、パレット、その他のユーザインターフェース要素をドキュメントに加えることもできます。しかし、通常の単純なノートブックでさえも、それだけでパワフルで柔軟性のあるアプリケーションソフトウェアです。これは DCI アプローチの大きな利点です。 ノートブックにより、以下のような共同ワークフローおよびインタラクティブなワークフローが可能になります。


デスクトップ検索のために追加されたノートブックの見出付け機能

Wolfram の Notebook Indexer は、Mathematica 5.2 で実装された新しい機能です。Google Desktop Search、Apple Spotlight、Windows Desktop のための適切なプラグインの自動初期化を経て、Indexer は、Mathematica で利用される文字やコントロール言語および日本語、中国語、その他の16-bit 文字など任意に設定された Unicode 文字を検索可能とするよう Notebook の内容を解析します。Indexer は、例えば Spotlight のカテゴリ識別機能といった特定のインデクサの外部機能もサポートします。


リモートカーネルのための SSH セキュリティをサポート

フロントエンドとカーネルの通信は、リモートシェル (RSH) のような安全性の低い接続形態ではなく、多くの組織で広く利用されているセキュアなシェル環境 (SSH) を通じて行われます。

※計算の高速化を図るため gridMathematicaParallel Computing Toolkit を利用して大規模なコンピュータ環境をクラスタやグリッドで結び付け Mathematica を使用するユーザーが増えています。これに伴いセキュリティに関する問題も重要になってきます。組織の IT 部門は、ネットワークの安全性を確保するためにこれらの多くにセキュアなシェルおよび他の認証および暗号化技術をを使用するよう指導します。Mathematica 5.2 に内蔵された SSH セキュリティは、この問題を容易にクリアできます。

グリッドおよびクラスタ環境に対応したベンチマークツール

MathematicaMark™ 5.2 で Mathematica のベンチマーク測定範囲が拡がります。MathematicaMark 5.2 を使えば、SMP マシーン、クラスタ、グリッドのベンチマークはもちろんシングル CPU システムのベンチマーク測定も可能となります。

並列処理のベンチマーク結果:CPU 数とスコアの関係

その他の演算処理関係の向上

これまでのリリースと同様、Mathematica 5.2 においても、数学的能力、アルゴリズムベース、その他多数の機能の追加と改良が含まれています。

Mathematica の組み込み関数に多くのメソッドが追加されるにつれ、 ユーザーはより多くの問題を解くことができるようになります。たとえば、微分代数方程式、区分方程式、非線形 PDE (偏微分方程式)の第一積分、これらは、Mathematica 以外のシステムでは解くことはできません。Mathematica のユニークなアルゴリズム自動選択機能によって、ユーザーは利用するための新しいコマンドを憶える必要がなく、また、新しい機能だと意識することすらなく自動的にアルゴリズムを選択できます。新しいメソッドはすべて完全に Mathematica の自動アルゴリズム選択に統合されていますので、ユーザーは、新しいコマンドを憶えたり、全く意識することなく、その機能を利用することができます。

ヒューリンクスHULINKS は、世界トップレベルの製品知識とサポート力を誇るマセマティカ技術認定代理店です。 Certified Reseller