ImageMagickは、テラピクセルクラスまでの画像サイズに対応できます。
64ビットOSにおける画像の幅または高さは、最大9エクサピクセルの範囲となります。
ただし、一部画像形式には画像サイズ制限があり、Photoshop画像の場合、幅または高さが300,000ピクセルに制限されています。
「分散ピクセルキャッシュ」とは、単一ホストで利用可能な「ローカルピクセルキャッシュ」の拡張で、複数サーバにまたがるピクセルキャッシュを構成できます。1つ以上のホストでリモートピクセルキャッシュサーバを構成します。
「ローカルピクセルキャッシュ」のリソースが使い果たされると、ImageMagickはこれらのリモートピクセルキャッシュサーバに接続して、ピクセルキャッシュをスケーリングします。構成サーバ台数を増やすことで、「非常に大きな画像」または「非常に大きな画像シーケンス」をサポートできます。
分散ピクセルキャッシュは、ネットワーク帯域幅に依存して、リモートピクセルキャッシュサーバとの間でピクセルをマーシャリングします。そのため、ローカルピクセルキャッシュよりも大幅に処理速度が低下する場合があります。
ImageMagickの内部アルゴリズムの多くは、マルチコアプロセッサチップによって提供されるスピードアップを利用するためにスレッド化されています。
複数の実行スレッドでピクセルキャッシュにアクセスするためには「キャッシュビュー」を使用します。
ほとんどの場合、最適なパフォーマンスを得るために、デフォルトのスレッド数はシステム上のプロセッサコアの数に設定されています。
ImageMagickは「OpenMP(Open MultiProcessing)」をサポートしています。
OpenMP APIとは、「C」「C++」「Fortran」でのマルチプラットフォーム共有メモリ並列プログラミングをサポートします。デスクトップからスーパーコンピューターまでのプラットフォームで、並列アプリケーションを開発するためのシンプルかつ柔軟なインターフェースを備えており、スケーラブルなモデルを定義できます。
ImageMagickのほとんどの内部アルゴリズムは、OpenMPに対応しているため、マルチコアプロセッサチップによって提供される高速化を利用できます。
「MagickWandAPI」などのプログラムインターフェースは完全にスレッドセーフであるため、実行スレッドに特別な注意を払う必要はありません。
ImageMagickには「OpenCLフレームワーク」による異種分散処理サポートが含まれています。
OpenCL(Open Computing Language)とは、「スーパーコンピューター」「クラウドサーバ」「パーソナルコンピューター」「モバイルデバイス」「組み込みプラットフォーム」などに対して、クロスプラットフォーム並列プログラミングを実行するためのオープン標準です。
ImageMagick内のOpenCLカーネルにより「CPU」「GPU」「その他のプロセッサ」で構成される異種プラットフォーム間で画像処理アルゴリズムを実行できます。
特定のアルゴリズムはOpenCL対応であり、マルチコアプラットフォームなどと接続し協調して実行することで、シングルCPUよりも桁違いに高速化できる場合があります。
OSS×Cloud ACCESS RANKING