利用可能なスレッドの数を制限する

目次

利用可能なスレッドの数を制限する#

このページでは、計算関数descriptor オブジェクトが使用できる CPU スレッドの数を制限する方法について説明します。非ネイティブの場合、以下で説明する関連するすべてのタイプと列挙は oneapi::mkl::dft 名前空間に属し、oneapi/mkl/dft.hpp (インクルード・ファイル) で宣言されます。簡潔にするため、先頭に付加された名前空間指定子 oneapi::mkl::dft は以下では省略されています。

説明

CPU コミット descriptor オブジェクトが計算関数内で使用するスレッドの数は、構成パラメーター config_param::THREAD_LIMIT に関連付けられた構成値によって制限されます。パラメーターに関連付けられた正の値 \(p > 0\) は、オブジェクトが使用できる CPU スレッドの最大数の制限として \(p\) を実際に設定します。そのパラメーターに関連付けられたゼロ値は、利用可能なスレッドの数に関する制限を事実上回避します (デフォルトの動作)。

定義により、この構成パラメーターは、oneMKL がシーケンシャル・モードで使用される場合には無関係であり、そのような場合には構成パラメーター config_param::THREAD_LIMIT に関連付けられた構成値は永続的に \(1\) に設定されます。その場合、関連する構成設定メンバー関数を使用してこれを変更するとすべて無視されます。

この構成パラメーターは、GPU デバイスにコミットされた descriptor オブジェクトには無関係であり、無視されます。

コミット後に config_param::THREAD_LIMIT に関連付けられた値について照会されると、descriptor オブジェクトは以前に設定された値よりも低い値を報告する場合があります。たとえば、以前に設定された値が別途定義された別の制限を超えている場合などです。