(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025090516
(43)【公開日】2025-06-17
(54)【発明の名称】電力システムの動的なグリッド安定化のための低エネルギー乱数生成
(51)【国際特許分類】
G06F 9/48 20060101AFI20250610BHJP
G06N 20/00 20190101ALI20250610BHJP
H04L 9/32 20060101ALI20250610BHJP
【FI】
G06F9/48 300Z
G06N20/00
H04L9/32 200Z
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024190216
(22)【出願日】2024-10-30
(31)【優先権主張番号】63/604,517
(32)【優先日】2023-11-30
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.CHATGPT
2.BARD
(71)【出願人】
【識別番号】515322297
【氏名又は名称】ゼネラル エレクトリック テクノロジー ゲゼルシャフト ミット ベシュレンクテル ハフツング
【氏名又は名称原語表記】General Electric Technology GmbH
【住所又は居所原語表記】Brown Boveri Strasse 8, 5400 Baden, Switzerland
(74)【代理人】
【識別番号】100105588
【弁理士】
【氏名又は名称】小倉 博
(74)【代理人】
【識別番号】110002848
【氏名又は名称】弁理士法人NIP&SBPJ国際特許事務所
(72)【発明者】
【氏名】エヴァンス、スコット チャールズ
(72)【発明者】
【氏名】シャー、タパン ラビン
(72)【発明者】
【氏名】ホアン、ハオ
(72)【発明者】
【氏名】ジミンスキー、ウィリー スティーブ
(72)【発明者】
【氏名】ウィルソン、ブロック マクラーレン
(72)【発明者】
【氏名】クレイドン、イアン
(72)【発明者】
【氏名】ヴェルヌーイ、デイヴィッド ウィリアム
(72)【発明者】
【氏名】ローズ、ブレイク
(57)【要約】 (修正有)
【課題】科学的機械学習、AI及び等の計算集約的な試みの効率を最大化しつつ、電力使用量を削減し、二酸化炭素排出量を削減し、かつ、電力システムのグリッド安定化を実現するシステム及び方法を提供する。
【解決手段】方法は、1つまたは複数のコンピューティングデバイスによって、プルーフ・オブ・ワークプロトコルに関連する1つまたは複数の作業指示を取得することと、作業指示に少なくとも部分的に基づいて1つまたは複数の第1のタスクを実行することと、1つまたは複数の第1のタスク中に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定することと、1つまたは複数のランダム値又は擬似ランダム値に基づいて、1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行することと、を含む。
【選択図】
図5
【特許請求の範囲】
【請求項1】
プルーフ・オブ・ワークの計算とランダム性のソースを必要とする計算とを組み合わせた計算コストを削減するコンピュータ実装方法であって、
1つまたは複数のコンピューティングデバイスにより、プルーフ・オブ・ワークプロトコルに関連する1つまたは複数の作業指示を取得するステップと、
1つまたは複数のコンピューティングデバイスにより、作業指示に少なくとも部分的に基づいて、1つまたは複数の第1のタスクを実行するステップと、
1つまたは複数のコンピューティングデバイスによって、1つまたは複数の第1のタスク中に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定するステップと、
1つまたは複数のコンピューティングデバイスによって、1つまたは複数のランダム値又は擬似ランダム値に基づいて、1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行するステップと、を含む、方法。
【請求項2】
1つまたは複数のコンピューティングデバイスにより、現在の電力負荷を示すデータを取得するステップと、
1つまたは複数のコンピューティングデバイスによって、1つまたは複数の電源装置から現在利用可能な電力量を示すデータを取得するステップと、
現在の電力負荷と現在利用可能な電力量との比較に基づいて、1つまたは複数の第1のタスク及び1つまたは複数の第2のタスクのうちの少なくとも1つを実行するかどうかを決定するステップと、をさらに含む、請求項1に記載の方法。
【請求項3】
プルーフ・オブ・ワーク・プロトコルは、1つまたは複数のブロックチェーン・ネットワークに関連付けられている、請求項1に記載の方法。
【請求項4】
作業指示は、第1の難易度を特徴とする第1の作業指示であり、第1のタスクの実行は、
1つまたは複数のコンピューティングデバイスによって、作業指示に基づいて、第1の難易度よりも低い第2の難易度を特徴とする1つまたは複数の修正された作業指示を生成するステップと、
1つまたは複数のコンピューティングデバイスによって、修正された作業指示を、修正された作業指示の難易度レベルに依存する生成値の数を出力するように構成された1つまたは複数のプロセッサに提供するステップと、
1つまたは複数のコンピューティングデバイスによって、1つまたは複数のプロセッサから、1つまたは複数の生成値を受信するステップと、
1つまたは複数のコンピューティングデバイスによって、1つまたは複数の生成値と第1の難易度レベルとの比較に基づいて、1つまたは複数の生成値のうちの少なくとも1つの生成値が第1の作業指示を満たしたかどうかを判定するステップと、
少なくとも1つの生成値を、1つまたは複数のブロックチェーン・ネットワークに関連付けられた1つまたは複数のコンピューティングシステムに提供するステップと、を含む、請求項3に記載の方法。
【請求項5】
1つまたは複数のランダム値又は擬似ランダム値を決定することは、
1つまたは複数のコンピューティングデバイスによって、プルーフ・オブ・ワークプロトコルに関連する第1の最小値を取得するステップと、
1つまたは複数のコンピューティングデバイスにより、プルーフ・オブ・ワークプロトコルに関連する第1の最大値を取得するステップと、
1つまたは複数のコンピューティングデバイスによって、1つまたは複数の第2のタスクに関連する確率分布に関連する第2の最小値を取得するステップと、
1つまたは複数のコンピューティングデバイスによって、1つまたは複数の第2のタスクに関連する確率分布に関連する第2の最大値を取得するステップと、
1つまたは複数のコンピューティングデバイスによって、第1の最小値、第2の最小値、第1の最大値、及び第2の最大値に基づいて、第1のタスク中に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値をスケーリングし、1つまたは複数のスケーリングされたランダム値又は擬似ランダム値を生成するステップと、を含み、
スケーリングされたランダム値又は擬似ランダム値に関連する確率分布は、1つまたは複数の第2のタスクに関連する確率分布に対応する、請求項1に記載の方法。
【請求項6】
少なくとも1つのタスクを実行するか否かを決定することは、
現在の電力負荷と現在利用可能な電力量との比較に少なくとも部分的に基づいて、余剰電力量を特定するステップと、
余剰電力量に基づいて実行する計算量を決定するステップと、を含む、請求項2に記載の方法。
【請求項7】
余剰電力が、少なくとも1つの再生可能電源によって生成された電力を含む、請求項6に記載の方法。
【請求項8】
1つまたは複数の第1のタスクを実行することは、1つまたは複数の暗号ハッシュを実行するステップを含む、請求項1に記載の方法。
【請求項9】
1つまたは複数の暗号ハッシュは、1つまたは複数のSHA-256ハッシュを含む、請求項8に記載の方法。
【請求項10】
1つまたは複数の第1のタスク中に生成される1つまたは複数の値は、1つまたは複数の暗号ハッシュ値を含む、請求項1に記載の方法。
【請求項11】
1つまたは複数のコンピューティングデバイスは、暗号ハッシュ値を生成する、又は1つまたは複数の浮動小数点演算を実行するように構成された1つまたは複数の特定用途向け集積回路を含む、請求項1に記載の方法。
【請求項12】
1つまたは複数の第1のタスクは、暗号ハッシュ値を生成するように構成された1つまたは複数の特定用途向け集積回路を使用して実行される、請求項11に記載の方法。
【請求項13】
1つまたは複数の第2のタスクは、
1つまたは複数の機械学習モデルをトレーニングすること、
1つまたは複数の機械学習モデルを使用して推論を実行すること、
画像生成、
テキスト生成、
モンテカルロ・サンプリング、
不合格サンプリング、
メトロポリス・ヘイスティングス・サンプリング、
ギブス・サンプリング、の少なくとも1つを含む、請求項1に記載の方法。
【請求項14】
1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能で、コンピューティングシステムに1つまたは複数のオペレーションを実行させる命令を記憶する1つまたは複数の非一過性のコンピュータ可読媒体とを含むコンピューティングシステムであって、オペレーションは、
プルーフ・オブ・ワーク・プロトコルに関連する1つまたは複数の作業指示を取得するステップと、
作業指示に少なくとも部分的に基づいて、1つまたは複数の第1のタスクを実行するステップと、
1つまたは複数の第1のタスク中に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定するステップと、
1つまたは複数のランダム値又は擬似ランダム値に基づいて、1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行するステップと、を含む、コンピューティングシステム。
【請求項15】
1つまたは複数のオペレーションを実行するために1つまたは複数のコンピューティングシステムによって実行可能な命令を記憶する1つまたは複数の非一過性のコンピュータ可読媒体であって、オペレーションは、
プルーフ・オブ・ワーク・プロトコルに関連する1つまたは複数の作業指示を取得するステップと、
作業指示に少なくとも部分的に基づいて、1つまたは複数の第1のタスクを実行するステップと、
1つまたは複数の第1のタスクの間に1つまたは複数のコンピューティングシステムによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定するステップと、
1つまたは複数のランダム値又は擬似ランダム値に基づいて、1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行するステップと、を含む、1つまたは複数の非一過性のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、科学的機械学習(SciML:scientific machine learning)、AI、及び他の計算集約的な試みの効率を最大化しつつ、電力使用量を削減し、二酸化炭素排出量を削減し、電力システムのグリッド安定化(grid stabilization for a power system)を提供するためのシステム及び方法に関する。より詳細には、本開示は、2つ以上の計算負荷(例えば、グリッド安定化のための中断可能な補助的な電力負荷として使用されるように構成された計算負荷)の組み合わせエネルギーコストを削減するためのシステム及び方法に関し、第1の計算負荷は、プルーフ・オブ・ワークタスクを含み、第2の計算負荷は、入力として1つ以上の乱数を使用する。
【背景技術】
【0002】
産業部門(運輸など)が化石燃料から電力に切り替わり、発電事業者が風力や太陽光発電のような再生可能エネルギーをより多く使用するようになると、電力負荷に関連する課題が生じる。例えば、風力発電や太陽光発電は、常にオンデマンドで利用できるとは限らない。風力発電が全く発電していない場合もあれば、現在必要とされている以上の発電が可能な場合もある。再生可能な電源に効率的に移行するためには、電力システムの安定性と信頼性を維持するために、電力の利用可能性を予測し、電力使用を調整し、電力消費に柔軟に対応できるようになることが望ましい。
【0003】
再生可能エネルギーの成長は、分散型発電(例:屋根にソーラーパネルを設置した家庭)、分散型蓄電(例:家庭用バッテリーシステム)、高度な需要応答機能(例:家庭の消費者が供給と価格の変化に基づいてエネルギー使用を調整する)の成長も伴っている。これらすべての要素は、場合によっては一緒に管理され、電力網をよりネットワーク化された複雑なものにしている。
【0004】
重要な課題の1つは、世界的なエネルギー使用量の大部分を占める計算に関連するエネルギー使用量である。大量のエネルギーを使用する計算の例としては、ブロックチェーン・システムに関連するプルーフ・オブ・ワーク計算(ビットコインのマイニングなど)や、入力として乱数を必要とする科学計算や機械学習計算(モンテカルロ・シミュレーションなど)が挙げられる。ブロックチェーン計算、人工知能/機械学習、その他の科学的計算のエネルギーコストを合わせると、2030年までに世界の全エネルギー使用量の20パーセントにまで成長する可能性があるという試算もある。例えば、数あるブロックチェーン・システムのひとつであるビットコインに関連するプルーフ・オブ・ワーク計算だけでも、世界全体で年間推定100テラワット時(TWH)以上の電力を使用しており、ビットコインのプルーフ・オブ・ワーク・ハッシュの約35%は米国に起因している。例えば、S. Shankar, Energy Estimates Across Layers of Computing, https://arxiv.org/ftp/arxiv/papers/2310/2310.07516.pdfを参照。ビットコインのプルーフ・オブ・ワーク計算に関連するエネルギー使用量を軽減する以前の試みは成功していない。たとえば、ビットコインのマイニングを全面的に禁止しようとした国もあるが、そのような禁止の主な効果は、ビットコインのマイニングの普及やエネルギーコストを劇的に減らすことではなく、禁止のない国にビットコインのマイニングを移転させることだった。一部の研究者は、ビットコインを、ビットコインが要求する単なるプルーフ・オブ・ワークではなく、プルーフ・オブ・ユースフル・ワークを要求する暗号通貨に置き換えることを提案している。しかし、ビットコインは依然として暗号通貨市場をリードしている。
【0005】
計算負荷のもうひとつの主要な増加源は、人工知能である。ビングやバード(Bing and Bard)のような検索エンジンにはすでにAIが組み込まれており、モデルの訓練と実行にはより多くのコンピューティング・パワー(計算電力)が必要となる。専門家によれば、これにより必要なコンピューティング・パワーだけでなく、使用されるエネルギーも検索ごとに最大5倍に増加する可能性があるという。さらに、AIモデルは最新の情報に対応するため、継続的に再訓練を受ける必要がある。
【0006】
多くの場合、AIや機械学習の計算、計算流体力学シミュレーション、その他の激しい計算オペレーション(intense computational operations:集中的なコンピューティング操作)では、擬似乱数を入力として使用する必要がある。例えば、機械学習モデルを訓練するための多くのアルゴリズムはモンテカルロアルゴリズムであり、訓練中に行われるアクションは、少なくとも部分的にはランダムな入力値に基づいている。別の例として、画像生成モデルをトレーニングするための多くのアルゴリズムでは、トレーニング画像にランダムノイズを加える必要がある。さらに、学習後に機械学習されたモデルを使用するためのアルゴリズムでは、ランダムな値が必要になることがある。例えば、ChatGPTやBardのようなテキストジェネレータ(文章生成AI)は、複数の選択肢からランダムに出力を選択するために乱数入力を使用する場合がある。
【0007】
全体として、擬似乱数(pseudo-random numbers)を入力として必要とする科学計算(機械学習などを含む)は、世界中で年間推定数十テラワット時を使用しており、そのような計算にかかるエネルギーコストの推定10%は、それらの計算の入力として使用される乱数の生成に起因している。したがって、乱数生成にかかるエネルギーコストを削減することで、場合によっては年間1テラワット時以上のエネルギー使用量を削減できる可能性があり、これは1億ドル以上のエネルギーコスト削減につながる可能性がある。また、エネルギー使用量の削減は、場合によっては、特定のエネルギー源からのエネルギー生産に関連する公害の量を削減する可能性もある。
【発明の概要】
【0008】
本開示に従ったシステム及び方法の態様及び利点は、以下の説明において部分的に記載されるか、又は説明から明らかであるか、又は技術の実践を通じて学ぶことができる。
【0009】
一実施形態に従って、例示的な方法が提供される。例示的な方法は、プルーフ・オブ・ワーク・プロトコルに関連する1つ以上の作業指示を取得することを含む。例示的な方法は、作業指示に少なくとも部分的に基づいて1つ以上の第1のタスクを実行することを含む。例示的な方法は、1つまたは複数の第1のタスクの間に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定することを含む。例示的な方法は、1つ以上のランダム又は擬似ランダム値に基づいて、1つ以上の第1のタスクとは異なる1つ以上の第2のタスクを実行することを含む。
【0010】
別の実施形態に従って、コンピューティングシステムが提供される。コンピューティングシステムは、1つまたは複数のプロセッサと、コンピューティングシステムに1つまたは複数のオペレーションを実行させるために1つまたは複数のプロセッサによって実行可能な命令を記憶する1つまたは複数の非一過性のコンピュータ可読媒体とを含む。オペレーションには、プルーフ・オブ・ワーク・プロトコルに関連する1つまたは複数の作業指示を取得することが含まれる。オペレーションは、作業指示に少なくとも部分的に基づいて1つまたは複数の第1のタスクを実行することを含む。オペレーションは、1つまたは複数の第1のタスクの間に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定することを含む。オペレーションは、1つまたは複数のランダム又は擬似ランダム値に基づいて、1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行することを含む。
【0011】
別の実施形態に従って、1つまたは複数の非一過性コンピュータ可読媒体が提供される。非一過性のコンピュータ可読媒体は、1つまたは複数のオペレーションを実行するために1つまたは複数のコンピューティングシステムによって実行可能な命令を格納する。オペレーションには、プルーフ・オブ・ワーク・プロトコルに関連する1つまたは複数の作業指示を取得することが含まれる。オペレーションには、作業指示に少なくとも部分的に基づいて1つまたは複数の第1のタスクを実行することが含まれる。オペレーションは、1つまたは複数の第1のタスクの間に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定することを含む。オペレーションは、1つまたは複数のランダム又は擬似ランダム値に基づいて、1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行することを含む。
【0012】
本方法のこれら及び他の特徴、態様及び利点は、以下の説明及び添付の特許請求の範囲を参照することにより、よりよく理解されるであろう。本明細書に組み込まれ、本明細書の一部を構成する添付図面は、本技術の実施形態を示し、本明細書と共に本技術の原理を説明するのに役立つ。
【図面の簡単な説明】
【0013】
当業者に向けられた、本システム及び方法を製造及び使用する最良の態様を含む、本システム及び方法の完全かつ有効な開示は、添付の図を参照する本明細書に記載されている。
【
図1】本開示の実施形態によるコンピューティングシステムの概略図である。
【
図2】本開示の実施形態による電力グリッド安定化システムの概略図である。
【
図3】本開示の実施形態によるコンピューティングシステムの概略図である。
【
図5】本開示の実施形態による方法のフローチャート図である。
【
図6】本開示の実施形態による方法のフローチャート図である。
【
図7】本開示の実施形態による方法のフローチャート図である。
【発明を実施するための形態】
【0014】
次に、本発明のシステム及び方法の実施形態について詳細に説明するが、その1つまたは複数の例が図面に示されている。各例は、技術を限定するのではなく、説明のために提供される。実際、当業者には、特許請求される技術の範囲又は精神から逸脱することなく、本技術に修正及び変形を加えることができることが明らかであろう。例えば、ある実施形態の一部として図示又は説明された特徴は、別の実施形態と共に使用することにより、さらに別の実施形態を得ることができる。したがって、本開示は、添付の特許請求の範囲及びそれらの均等物の範囲内に入るような修正及び変形をカバーすることが意図される。
【0015】
本明細書において「例示的:exemplary」という語は、「例、実例、又は説明として役立つ:serving as an example, instance, or illustration」という意味で使用される。本明細書において「例示的」として説明される任意の実施態様は、必ずしも、他の実施態様よりも好ましい又は有利であると解釈されるものではない。さらに、特に特定されない限り、本明細書に記載されるすべての実施形態は、例示的であると考えられるべきである。
【0016】
詳細な説明では、図面中の特徴を参照するために数字及び文字を使用している。図面及び説明における同様又は類似の表記は、本発明の同様又は類似の部分を指すために使用されている。本明細書において、「第1」、「第2」、及び「第3」という用語は、1つの構成要素を別の構成要素から区別するために互換的に使用することができ、個々の構成要素の位置又は重要性を意味することを意図していない。
【0017】
「約」、「およそ」、「一般的に」、「実質的に」などの近似語は、指定された正確な値に限定されるものではない。少なくともいくつかの例では、近似的な用語は、値を測定するための計器の精度、又は構成要素及び/又はシステムを構築又は製造するための方法又は機械の精度に対応する場合がある。例えば、個々の値、値の範囲、及び/又は値の範囲を定義する端点のいずれかにおいて、1、2、4、5、10、15、又は20パーセントのマージン内にあることを指す場合がある。角度又は方向の文脈で使用される場合、このような用語には、記載された角度又は方向よりも10度大きい又は小さい範囲が含まれる。例えば、「概ね垂直」は、時計回り又は反時計回りなど、どの方向においても垂直から10度以内の方向を含む。
【0018】
「結合された」、「固定された」、「取り付けられた」などの用語は、本明細書で特に規定しない限り、直接的な結合、固定、又は取り付け、ならびに1つまたは複数の中間構成要素又は特徴を介した間接的な結合、固定、又は取り付けの両方を指す。本明細書で使用される場合、用語「含む」、「含んでいる」、「包含する」、「包含している」、「有する」、「有している」又はその他の変形は、非排他的な包含をカバーすることを意図している。例えば、特徴のリストから構成されるプロセス、方法、成形品、又は装置は、必ずしもそれらの特徴のみに限定されるものではなく、明示的に列挙されていない、又はそのようなプロセス、方法、成形品、又は装置に固有の他の特徴を含んでもよい。さらに、明示的に反対の記載がない限り、「又は」は、「包括的な又は」を意味し、「排他的な又は」を意味しない。例えば、条件A又は条件Bは、以下のいずれか1つによって満たされる:Aは真であり(又は存在し)、Bは偽である(又は存在しない)、Aは偽であり(又は存在しない)、Bは真である(又は存在する)、及びAとBの両方が真である(又は存在する)。
【0019】
本明細書及び特許請求の範囲全体を通じて、範囲の限定は組み合わされ、交換され、そのような範囲は、文脈又は文言がそうでないことを示さない限り、特定され、そこに含まれるすべてのサブ範囲を含む。例えば、本明細書で開示されるすべての範囲は終点を含み、終点は互いに独立して組み合わせ可能である。
【0020】
本開示は、一般に、計算エネルギー負荷に関連する省エネルギー、炭素最小化、及びグリッド安定化のためのシステム及び方法に向けられている。より詳細には、本開示は、計算負荷(例えば、電力グリッドの安定化のために構成された補助計算負荷、スタンドアローンの高性能計算センターなど)のエネルギーコスト及び炭素コストを削減するためのシステム及び方法に向けられており、計算負荷は、1つまたは複数のブロックチェーンプルーフ・オブ・ワーク計算、及び入力として擬似乱数を必要とする1つまたは複数の計算タスク又はシミュレーションタスク(例えば、機械学習、人工知能、又は科学計算)を含み得る。
【0021】
本開示の例示的な態様において、1つまたは複数の補助計算負荷は、オンデマンドグリッド安定化を提供するように構成され得、過剰電力(例えば、電力グリッドに関連する;ローカルシステム、例えば、家庭用発電システムに関連する;など)は、1つまたは複数の有用な計算を実行するために生産的に使用され得る。例えば、1つ以上のコンピューティングデバイスを、1つ以上の電力システムに関連する制御システムに動作可能に接続することができる。制御システムは、電力システムの1つ以上の電源に関連する利用可能な電力量を監視することができる。制御システムはさらに、電力システムの1つまたは複数の電力負荷に関連する電力需要量を監視することができる。いくつかの実施態様において、制御システムは、利用可能な電力量と電力需要量との比較に基づいて、計算(例えば、機械学習計算;ブロックチェーンのプルーフ・オブ・ワーク計算;など)を開始するかどうかを決定することができる。
【0022】
一部の実施例では、オンデマンドグリッド安定化は、電力利用可能性データに基づいて特定のコンピューティングシステムに計算をルーティングすることを含むことができる。たとえば、いくつかの例では、制御システムは、複数のコンピューティングシステム(たとえば、コンピューティングデバイス;データセンター;1つまたは複数のコンピューティングデバイスを含み、グリッド安定化のために構成されたポータブルモジュラースキッド;など)に動作可能に接続することができる。このような場合、制御システムは、例えば、直ちに実行されるように構成された計算負荷を得ることができる。制御システムは、例えば、複数のコンピューティングシステムにそれぞれ関連付けられた複数のそれぞれの利用可能な電力量(例えば、データセンターに動作可能に接続された風力発電所からの利用可能な電力量など)の間の比較に基づいて、複数のコンピューティングシステムのうちの1つまたは複数のコンピューティングシステム(例えば、データセンター)に計算負荷を割り当てることができる。割り当てはまた、例えば、複数のコンピューティングシステムにそれぞれ関連付けられた複数のそれぞれの電力需要量の間の比較に基づくこともできる。割り当てはまた、例えば、将来の需要又は将来のエネルギー利用可能性の1つまたは複数の予測に基づくこともできる。
【0023】
場合によっては、制御システムは、直ちに実行する必要のないタスクの適応的スケジューリングを実行することができる。例えば、制御システムは、直ちに実行する必要のない(例えば、次の日、週、月などのいつでも実行可能な)計算からなる計算負荷を得ることができる。制御システムは、例えば、現在の利用可能な電力量;現在の電力需要量;1つまたは複数の将来の利用可能な電力量の予測量;及び1つまたは複数の将来の電力需要量の予測量の間の比較に基づいて、計算を直ちに開始するかどうかを決定することができる。いくつかの実施態様において、制御システムは、かかるデータに基づいて、既に開始された計算を一時停止するか否かを決定することができる。場合によっては、制御システムは、1つまたは複数の電力予測に基づいて、計算を開始する特定の時間を決定することができる。
【0024】
本開示の例示的な態様において、計算負荷は、プルーフ・オブ・ワーク計算(例えば、ブロックチェーンのプルーフ・オブ・ワーク、例えばビットコイン)を実行するように構成されたコンピューティングシステム(例えば、1つまたは複数の特定用途向け集積回路(ASIC)を含む)を活用して、入力として乱数を必要とする1つまたは複数の計算(例えば、機械学習計算、モンテカルロ計算、科学計算など)で使用するために、低減されたエネルギーコストで乱数を生成する。例えば、いくつかの例では、ブロックチェーンのプルーフ・オブ・ワーク・プロトコルに関連する作業命令は、プルーフ・オブ・ワーク計算用に構成された第1のコンピューティングシステムに、元の作業命令に関連するプルーフ・オブ・ワーク出力に加えて、複数のランダム又は擬似ランダム値(例えば、ランダム又は擬似ランダム出力分布を有する暗号ハッシュ出力のシーケンス)を出力させるように修正することができる。複数の出力値は、入力として乱数を必要とする1つまたは複数の計算を実行するように構成された制御コンピューティングシステム又は第2のコンピューティングシステムに伝達することができる。出力値に基づいて、制御コンピューティングシステム又は第2のコンピューティングシステムは、入力として乱数を必要とする1つ以上の計算において入力として使用されるように構成されたランダム値又は擬似ランダム値を生成することができる。
【0025】
入力として使用されるように構成された値を生成することは、例えば、第1のコンピューティングシステムによって出力された値をスケーリングすることを含むことができる。例えば、出力値は、場合によっては、可能な最大出力値と可能な最小出力値とに関連付けることができる。ある実施例では、入力として乱数を必要とする計算は、受け入れられる最小入力値(例えば、あるモンテカルロ・サンプリング計算のための0.0:0.0 for some Monte Carlo sampling computations)と受け入れられる最大入力値(例えば、1.0)と関連付けることができる。このような場合、最小入力値と最大入力値と出力値に基づいて、スケーリングされた入力値を計算することができる。例えば、スケーリングされた入力値は以下のようになる。
【0026】
(((ランダム出力値-最小出力値)(最大入力値-最小入力値))/(最大出力値-最小出力値))+最小入力値
【0027】
ある実施態様では、入力として使用されるように構成された値を生成することは、例えば、複数の一次元ランダム入力に基づく確率分布(例えば、二次元確率分布:two-dimensional probability distribution)からサンプリングするように構成されたサンプリング法を含むことができる。ある実施態様では、入力として使用されるように構成された値を生成することは、棄却サンプリングを含むことができる。ある実施態様では、入力として使用されるように構成された値を生成することは、メトロポリス・ヘイスティングス・サンプリングを構成することができる。ある実施態様では、入力として使用されるように構成された値を生成することは、ギブス・サンプリングを含むことができる。
【0028】
一部の実装では、プルーフ・オブ・ワーク値から生成された乱数を活用して、乱数を入力として必要とする複数の計算をサポートすることができる(例えば、乱数を保存して再利用することにより、プルーフ・オブ・ワークシステムを2つ以上の乱数ベースの計算システムに動作可能に接続することにより、など)。
【0029】
一部の実装では、統合アーキテクチャは、1つまたは複数のGPUと組み合わせた(例えば、1つのコンピューティングシステム又はコンピューティングデバイスに組み合わせた)1つまたは複数のプルーフ・オブ・ワークマイニングASIC、又は他の計算プラットフォーム又はASICを活用し、低エネルギーコストで作成されたこれらの乱数を活用した計算の二重使用(dual use)における正味のエネルギー利得(a net energy gain)を提供することができる。
【0030】
本開示のシステム及び方法は、様々な技術的効果及び利点を有する。例えば、本開示の乱数生成方法は、先行する乱数生成方法よりも少ないエネルギーを使用する。例えば、本開示による実験は、別々に実行されるブロックチェーン計算及びモンテカルロ計算に関連するエネルギーコストと、本開示に従って生成される乱数を使用するブロックチェーン-モンテカルロ計算を組み合わせたエネルギーコストとを比較した。本開示のシステム及び方法は、様々な実験条件下で、より低い組み合わせエネルギーコストを示した。
【0031】
別の例として、本開示のスケジューリング方法は、予備の再生可能エネルギーを生産的に利用し、計算負荷に関連する炭素排出量を最小限に抑えることができる。また、本開示のシステム及び方法は、中断可能な「グリッドへのショックアブソーバー:shock absorbers to the grid」を通じてグリッドの安定化を提供することができ、同時に有用な計算出力を提供しながら無駄なエネルギーを散逸させることができる。さらに、本開示のシステム及び方法は、ブロックチェーン及び機械学習計算に関連する複合計算コストを低減することによって、プルーフ・オブ・ワークのブロックチェーン計算及び成長する人工知能及び機械学習分野に関連する気候への影響を低減することができる。
【0032】
計算エネルギーコストを削減するための先行手法は、一般的に、ブロックチェーンの計算又は機械学習の計算を個別に最適化し、(両方を組み合わせるのではなく)どちらか一方の計算に関連するエネルギー使用量を削減したり、二酸化炭素排出量を削減したりする方法に焦点を当ててきた。例えば、機械学習モデルを最適化することで、推論時のエネルギー使用量を削減できる、エネルギーアウェア機械学習を提案した研究者もいる。同様に、コルモゴロフ学習サイクルは、使用されるエネルギーの量(例えば、「エントロピーの減少」と使用されるエネルギーの比率)に関連して、機械がどれだけ効率的に学習するかを測定することができる。ブロックチェーンの文脈では、暗号ハッシュを計算するための特定用途向け集積回路(ASIC)などの特殊なハードウェアが、ビットコインのプルーフ・オブ・ワーク計算に関連する暗号ハッシュを計算する際のハッシュあたりのエネルギーコストを劇的に削減している。しかし、動的に負荷が変化する電力網に接続された計算リソースを組み合わせて、エネルギー使用量を総合的に研究した先行研究はほとんどない。
【0033】
有利なことに、本開示のシステム及び方法は、さらなる省エネルギー及び環境上の利点を提供しながら、先行する最適化方法と組み合わせて使用することができる。例えば、いくつかの実施態様において、エネルギー認識機械学習アルゴリズムは、過剰な再生可能エネルギーを使用して、以前の乱数生成と比較して低減されたエネルギーコストで生成された乱数を使用して、コルモゴロフ訓練され得る。このような場合、本開示のシステム及び方法は、先行するエネルギー最適化方法のみと比較して、低減されたエネルギーコストに関連付けることができる。
【0034】
次に図面を参照すると、
図1は、コンピューティングシステム100の一実施形態の概略図である。制御システム102は、1つまたは複数の作業指示104をプルーフ・オブ・ワークシステム(作業証明システム)106に提供することができる。プルーフ・オブ・ワークシステム106は、作業指示104に基づいて1つまたは複数の生成値108を生成し、制御システム102又はランダム性に基づく計算システム(randomness-based computation-system)110に伝達することができる。生成値(generated values:生成された値)108に基づいて、制御システム102又はランダム性に基づく計算システム110は、場合によっては、ランダム性に基づく計算で使用されるように構成された1つまたは複数のランダム値(random values:乱数値)112を決定することができる。その後、ランダム性に基づく計算システム110は、ランダム値112を使用して、1つまたは複数の計算結果114を生成することができる。
【0035】
制御システム102は、例えば、1つまたは複数のコンピューティングデバイス又は1つまたは複数のプロセッサ(例えば、CPUなど)であるか、又はそれらを含み得る。いくつかの実施態様において、制御システム102は、1つまたは複数の特定用途向け集積回路を制御するように構成された特定用途向け制御ハードウェアであるか、又はそれらを含み得、特定用途向け集積回路は、1つまたは複数のプルーフ・オブ・ワークタスク(例えば、暗号ハッシュなど)を実行するように構成される。いくつかの実施態様において、制御システム102は、1つまたは複数のプルーフ・オブ・ワーク制御カード(例えば、Antminer S9iなど)を構成することができる。ある実施態様では、制御システム102の機能は、プルーフ・オブ・ワークシステム106又はランダム性に基づく計算システム110に統合することができる。
【0036】
作業指示104は、例えば、プルーフ・オブ・ワーク・プロトコル(例えば、ブロックチェーン・プルーフ・オブ・ワーク・プロトコル)に関連する1つまたは複数の作業指示であるか、又はそれらを含み得る。いくつかの実施態様において、作業指示104は、ブロックチェーン・プルーフ・オブ・ワーク・プロトコルに関連する作業指示に部分的に基づいて修正された作業指示であり得る。例えば、いくつかの実施態様において、ブロックチェーン・プルーフ・オブ・ワーク・プロトコルは、難易度と関連付けることができ、出力が生成される速度は、1つまたは複数の作業指示によって構成される難易度に反比例することができる。このような場合、作業指示を修正することは、プルーフ・オブ・ワークシステムから出力がより頻繁に受信されるように、ブロックチェーン作業指示に関連付けられた難易度レベルを低減することを含むことができる。次に、制御システム102は、生成値108を処理して、ブロックチェーン・ネットワークに提供するために修正前の難易度レベルを満たす1つまたは複数の生成値を見つけることができる。いくつかの実施態様では、作業指示104(例えば、修正された作業指示)は、プルーフ・オブ・ワークシステム106に、ランダム又は擬似ランダム文字を有する1つまたは複数の生成値108を生成させるように構成され得る。例えば、ある実施態様では、作業指示104は、ランダム又は擬似ランダム文字を有する暗号ハッシュ値の多数(例えば、毎秒数千など)の出力を要求するように構成され得る。
【0037】
プルーフ・オブ・ワークシステム106は、例えば、1つまたは複数のプロセッサ(例えば、CPU、GPU、特定用途向け集積回路(CPUs, GPUs, application-specific integrated circuits)など)を含む1つまたは複数のコンピューティングデバイスであるか、又はそれらを含み得る。いくつかの実施態様において、プルーフ・オブ・ワークシステム106は、プルーフ・オブ・ワークタスクを実行するように構成された1つまたは複数の特定用途向け集積回路(ASIC)(たとえば、暗号ハッシュを生成するように構成されたASIC、たとえば、Antminerハッシュボード、GPUなど)であるか、又はそれらを含み得る。場合によっては、プルーフ・オブ・ワークシステム106は、制御システム102と同一であることも、異なることもあり得る。
【0038】
生成値108は、例えば、コンピュータ読み取り可能なデータを含むことができる。ある実施態様では、生成値108は、ランダム又は擬似ランダム特性(例えば、ランダム性の1つ以上の統計的検定を満たす文字、ビット、数値などのシーケンス)を有するコンピュータ読み取り可能データを含み得る。
【0039】
ランダム性に基づくコンピューティングシステム110は、例えば、入力として1つ以上のランダム値(例えば、乱数:random numbers)を必要とする計算を実行するように構成された1つ以上のコンピューティングデバイスを含み得る。いくつかの実施態様において、ランダム性に基づくコンピューティングシステムは、浮動小数点演算を実行するように構成された1つ以上の特定用途向け集積回路(ASIC)(例えば、GPU、行列乗算のために構成されたASICなど)を含み得る。
【0040】
いくつかの実施態様において、プルーフ・オブ・ワークシステム106は、制御システム102又はプルーフ・オブ・ワークシステム106と同じであるか、同じであるか、異なるか、によって、実装されるか、構成されるか、実装されるか、によって構成され得る。例えば、いくつかの例では、単一のコンピューティングシステム、あるいは単一のプロセッサ(例えば、CPU)でも、制御システム102、プルーフ・オブ・ワークシステム106、及びランダム性に基づくコンピューティングシステム110の1つまたは複数の機能を実行することができる。別個の特化されたプロセッサ(例えば、ASIC)は、場合によっては、特化されていないプロセッサ(例えば、CPUなど)よりも効率的にプルーフ・オブ・ワーク及びランダム性に基づく機能を実行することができるが、単一プロセッサシステムは、場合によっては適切であり(例えば、3つの機能すべてを実行するように構成された特化されたASICを使用する、特定のASIC耐性のプルーフ・オブ・ワークプロトコルを有するCPUを使用する、など)、場合によっては、プロセッサ間の通信に関連する待ち時間及びエネルギーコストを削減することができることが理解されよう。
【0041】
ランダム値112は、例えば、入力としてランダム値を必要とする計算に入力されるように構成されたコンピュータ読み取り可能なデータを含むことができる。例えば、いくつかの実施例では、ランダム値112は、1つまたは複数の乱数又は擬似乱数(例えば、モンテカルロ計算のための0.0と1.0の間の一様乱数など:uniform random number between 0.0 and 1.0 for a Monte Carlo computation, etc.)を含むことができる。
【0042】
ランダム値112の生成は、例えば、生成値108の少なくとも一部がランダム又は擬似ランダム(例えば、ランダム性の1つまたは複数の統計的検定を満たす:satisfying one or more statistical tests of randomness)特性によって特徴付けられる生成値108を得ることを含み得る。ランダム値112を生成することは、生成値108、又は生成値108のランダムもしくは擬似ランダム部分を、ランダム性に基づく計算システム110によって使用されるように構成された値にスケーリングすること(scaling the generated value 108 or random or pseudorandom portion of the generated value 108 to a value configured to be used by the randomness-based computation system 110)をさらに含み得る。例えば、いくつかの実施例では、生成値108は、テキストベースのデータ(例えば、256文字をエンコードする256のASCII値:256 ASCII values encoding 256 characters)をエンコードする1つまたは複数のランダム又は擬似ランダムなASCIIコードを含み得る。このような場合、各ASCIIコードは、可能な最小値(例えば、「ヌル」文字を表す000)及び可能な最大値(例えば、「ウムラウト:umlaut」が付いた「y」に似た特殊文字を表す255)によって特徴付けることができる。場合によっては、ランダム性に基づく計算は、最小値と最大値によって特徴付けられる入力ランダム変数を必要とすることがある。例えば、モンテカルロ計算の中には、0.0と1.0の間のランダム値112に基づいて、1つ以上の行動確率に基づいて行動をランダムに決定するために使用できるものがある。このような場合、生成値108をスケーリングして、以下の式に従ってランダム値112を生成することができる。
【0043】
(((生成値108-最小生成値)(最大ランダム値-最小ランダム値))/(最大生成値-最小生成値))+最小ランダム値
【0044】
いくつかの実施態様では、1つまたは複数のランダム値112を生成することは、(例えば、ランダム値112のより複雑な分布、例えば、各次元のランダム値に関連付けられた多次元分布などを生成する目的で)より複雑なサンプリングプロセスを構成することができる。例示的なサンプリングプロセスには、棄却サンプリング、メトロポリス・ヘイスティングス・サンプリング、ギブス・サンプリング、及び1次元のランダム値をより複雑な分布に変換するように構成された任意の他の統計的サンプリングプロセス(rejection sampling, Metropolis-Hastings sampling, Gibbs sampling, and any other statistical sampling process configured to convert one-dimensional random values into a more complex distribution)が含まれ得る。
【0045】
棄却サンプリングは、第1の次元に関連する第1のランダム値を(例えば、生成値108をスケーリングすることによって)決定することと、第2の次元に関連する第2のランダム値を(例えば、生成値108をスケーリングすることによって)決定することと、第1及び第2の値を、サンプリングされる確率分布(例えば、2次元確率分布)を記述する曲線と比較することと、第1及び第2の値によって記述される点が確率分布内に入る場合、第1及び第2の値を受け入れることとを含むことができる。同じプロセスが、2次元以上(例えば3次元、4次元など)の次元を有する確率分布に適用できる場合もある。場合によっては(例えば、多数の次元を持つ確率分布の場合)、棄却サンプリングの代わりに、又は棄却サンプリングに加えて、メトロポリス・ヘイスティングス・サンプリング又はギブス・サンプリングを使用することができる。
【0046】
場合によっては、生成値108以外の値に基づいてランダム値112を生成することができる。例えば、これらの演算を実行するために必要な計算リソースは、場合によっては、オペレーティングシステムの測定値に基づいて真の乱数発生器を作成する機会を提供することができる。動作条件下で離散的な位置で取得された温度、圧力、流量などの測定値は、場合によっては、乱数(例えば、暗号的に安全な乱数)を提供するための複数のランダムデータストリームを提供することができる。これらの測定が容易なシーケンスに加えて、各計算ユニットで発生する物理現象(例えば、コンピューティングシステム100の冷却システムに関連する乱流渦内の気泡の動きなど)を測定することによって、より高いエントロピーを有するシーケンスを得ることができる。これらのデータストリームは、必要に応じて、VaziraniとSanthaによる1つ以上の証明に従ってさらに結合され、より高いエントロピーのシーケンスを形成することができる。
【0047】
計算結果114は、例えば、入力としてランダム値を必要とする計算中に生成されたコンピュータ読み取り可能なデータを含むことができる。例えば、いくつかの実施態様において、計算結果114は、機械学習計算(例えば、機械学習訓練計算の結果としての訓練された機械学習モデル又はモデル更新、機械学習推論計算の結果としての機械学習出力など)又は科学計算(例えば、分子動力学シミュレーションなど)の1つまたは複数の結果を含み得る。
【0048】
図2は、本開示の実施形態による電力網安定化システム(power grid stabilization system;電力グリッド安定化システム)の概略図である。電力網(パワーグリッド)は、電力源202及び電力負荷204を含むことができる。電力源は、連続的な電力源(continuous sources:連続源)206及び補助的な電力源(auxiliary sources:補助源)208を含むことができ、電力負荷は、連続的な負荷(continuous loads:連続負荷)210及び補助的な負荷(auxiliary loads:補助負荷)212を含むことができる。グリッド安定化システム214は、電源202及び電力負荷204にそれぞれ関連する電力利用可能性データ(power availability data)216及び電力使用量データ218を監視することができる。データ216、218に基づいて、グリッド安定化システム214は、電源202及び電力負荷204に指示(instructions:命令)220を送ることができる。ある例示的なシナリオでは、指示220は、補助的な負荷212(例えば、コンピューティングシステム100又は他の補助的な負荷212)の動作を開始して、連続的な電源206からの余剰電力222を生産的に使用(productive use)するための指示を含むことができる。
【0049】
電源202は、例えば、電力(例えば、電気)を生成することができ、電力システム(例えば、公共電力網、私的電力網、オフグリッド電力系統など:public power grid, private power grid, off-grid power system, etc.)に動作可能に接続された任意のシステム(例えば、デバイス、機械、装置など)であり得る。
【0050】
電力負荷204は、例えば、電力(例えば、電気)を使用するように構成され、電力システム(例えば、公共電力網、自家用電力網、オフグリッド電力システムなど)に動作可能に接続された任意のシステム(例えば、デバイス、機械、装置など)であり得る。
【0051】
1つまたは複数の連続的な電源206は、例えば、ある期間(例えば、数時間、数日、数分など)連続的に動作するように構成された電源を含むことができる。いくつかの実施態様において、1つまたは複数の連続的な電源206は、無効にすることが可能であるが、無効にすることが困難であるか、不便であるか、又はそうでなければ望ましくない電源を含み得る。例えば、連続的な電源206(例えば、風力タービン;ソーラーパネル)が、ほとんど又は全くコスト(例えば、金銭的コスト、環境コストなど)をかけずに電力を生成することができる場合、連続的な電源206からの電力が他の方法で生産的に使用される可能性がある場合、連続的な電源206を無効にすることは望ましくない可能性がある。いくつかの実施態様において、連続的な電源206は、再生可能な電源(例えば、風力、太陽光、水力発電、地熱、バイオエネルギー、海洋エネルギーなど)を含み得、ここで、「再生可能」とは、電源が、自然プロセス(例えば、植物ベースの燃料のための植物の成長、太陽光発電のための夜/日サイクルなど)を通じて補充可能な電源からそのエネルギーを得ることを意味する。「再生可能」は、例えば化石燃料とは対照的である。化石燃料は、形成に何百万年もかかるため、事実上再生不可能である。一部の例では、再生可能電源は、電源の環境の変化により時間と共に変化する出力容量を有する可変再生可能電源であり得る。例えば、風力、太陽光、又は海洋電源の出力容量は天候により変化し、水力発電又は海洋エネルギー電源は、水域の状況(降水量、波、潮流、潮汐など)に依存する。別の例示的な例では、連続的な電源206は、現在生成されている量とは異なる(例えば、より大きい、より小さい、ゼロの)量の電力を出力するように再構成するために、一定時間(例えば、数時間)を要する場合がある。いくつかの実施態様において、この時間量は、電力システムに関連する電力需要又は電力使用の1つまたは複数の変化に関連する時間量(例えば、分、秒など)よりも長い場合がある。
【0052】
1つまたは複数の補助的な電源208は、例えば、1つまたは複数の連続的な電源206と比較して、より簡便に(例えば、迅速に、安価に、低減された環境コストで、増加/低減された量の電力を出力するように構成される)活性化、無効化、又は調整(例えば、増加/低減された量の電力を出力するように構成される)され得る電源を含み得る。いくつかの実施態様において、1つまたは複数の補助的な電源208は、電力使用量又は需要に応答して電力出力を調整するために、オンデマンドで有効化、無効化、又は調整されるように構成され得る。
【0053】
同様に、1つまたは複数の連続的な電力負荷210は、例えば、ある期間(例えば、数時間、数日、数分など)連続的に動作するように構成された電力負荷を含むことができる。いくつかの実施態様において、連続的な電力負荷(複数可)210は、無効にすることが可能であるが、無効にすることが困難、不便、又は他の方法で望ましくない可能性がある電力源を含み得る。例えば、場合によっては、1つまたは複数の連続的な電力負荷210は、緊急又は安全に敏感な電力負荷(例えば、緊急医療、冷暖房、時間に敏感な産業用又はコンピューティング操作などに関連する)、又は電力負荷の変化に応答してエネルギー使用量を削減することができないか、又は削減することに消極的な人(例えば、電力消費者)に関連する負荷を含むことができる。
【0054】
1つまたは複数の補助的な電力負荷212は、例えば、1つまたは複数の連続的な電力負荷210と比較して、より簡便に(例えば、迅速に、安価に、低減された環境コストで、増加/低減された電力量を出力するように構成される)活性化、無効化、又は調整(例えば、増加/低減された電力量を出力するように構成される)可能な電力負荷を含むことができる。いくつかの実施態様において、1つまたは複数の補助的な電力負荷212は、電力使用量又は需要に応答して電力出力を調整するために、有効化、無効化、又はオンデマンドで調整されるように構成され得る。非限定的な例としては、例えば、非時間感受性又は非場所感受性の(non-time-sensitive or non-location sensitive:特定の時間または場所に限定されない)コンピューティング動作(例えば、オフピーク時に都合よく実行され得る機械学習トレーニング動作)、変化する需要に関連する変化する価格に応答して電力使用量を自動的に調整するように構成された「スマートホーム」システムに関連する電力負荷、などが挙げられ得る。
【0055】
いくつかの実施例では、1つまたは複数の補助的な電力負荷212は、多数のマシンに計算タスクを分散するように構成されたコンピューティングデバイス(例えば、コンピューティングシステム100)のネットワーク(例えば、「グリッド」)を構成することができる。そのような場合、ネットワーク化されたコンピューティングデバイスのグリッドは、電力不足を特徴とする1つまたは複数の電力システムに動作可能に接続された1つまたは複数のコンピューティングデバイスから1つまたは複数のコンピューティングタスクを迂回させ、電力余剰を特徴とする1つまたは複数の電力システムに動作可能に接続された1つまたは複数のコンピューティングデバイスに向かって1つまたは複数のコンピューティングタスクを迂回させることによって、電力負荷を調整するように構成され得る(例えば、余剰電力222)。このようにして、例えば、1つまたは複数のコンピューティングタスクに関連するエネルギーコスト及び汚染コストを低減することができる。
【0056】
利用可能性データ216は、例えば、1つまたは複数の電源202から現在利用可能な1つまたは複数の電力量を記述するコンピュータ読み取り可能なデータを含むことができる。これは、例えば、1つまたは複数の連続的な電源206及び補助的な電源208によって現在生成されている電力量、現在フル稼働されていない補助的な電源208から利用可能な追加電力の最大量、などを含むことができる。いくつかの実施態様において、利用可能性データ216は、電力使用について人間のオペレータに通知するように構成された人間が読み取り可能なデータを含み得る。
【0057】
使用量データ218は、例えば、1つまたは複数の電力負荷204によって現在使用されている1つまたは複数の電力量を記述するコンピュータ読み取り可能なデータを含むことができる。これは、例えば、1つまたは複数の連続的な電力負荷210及び補助的な電力負荷212によって現在使用されている電力量、現在全容量で運転されていない1つまたは複数の補助的な電力負荷212によって使用可能な追加電力の最大量、1つまたは複数の補助的な負荷212が最小容量以上で運転されることに関連する電力使用削減の最大量、などを含むことができる。ある実施態様では、使用量データ218は、電力使用量について人間の操作者に知らせるように構成された人間が読み取り可能なデータを含み得る。
【0058】
指示220は、例えば、1つまたは複数の電源202又は1つまたは複数の電力負荷204に現在の動作(例えば、電力の生成を開始又は停止する;電力の使用を開始又は停止する;使用又は生成されている電力量を増加又は減少させる;など)を変更させるように構成されたコンピュータ可読データ又は人間可読データを含み得る。非限定的な例としては、例えば、電源202又は電力負荷204の現在の挙動を変更するための動作を1つまたは複数のプロセッサに実行させるように構成されたコンピュータ可読命令、1つまたは複数の消費者に電力使用量を削減させるように構成された消費者警告(consumer alert)、1つまたは複数の発電所の従業員に調整を実行させるように構成された人間可読命令(human-readable instruction)、等を含むことができる。いくつかの実施態様において、指示220は、炭素を最小化するスケジューリングアルゴリズム又はエネルギーを考慮した機械学習のための命令を構成することができる。
【0059】
図2に示されるように、余剰電力222は、例えば、1つまたは複数の電力負荷204によって現在使用されていない、連続的な電力源206からの余剰電力を含み得る。非限定的な例示的例としては、現在使用されていないが、1つまたは複数の補助的な負荷212によって生産的に使用され得る持続可能な電力(例えば、風力タービンによって生成される)を挙げることができる。
図2は、電力余剰に応答して補助的な負荷が起動される余剰電力シナリオを描いているが、当業者であれば、他のシナリオも可能であることを認識するであろう(例えば、不足に応答して補助的な負荷212を無効にする、又は補助的な電源208を有効にする、有効又は無効にするのではなく、使用量を低減又は増加させる、など)。
【0060】
図3は、本開示の実施形態によるコンピューティングシステム300の概略図である。
図3は、ネットワーク301から作業指示104を受信するコンピューティングシステム300を描いている。作業指示は、1つまたは複数のCPU302又は1つまたは複数のプルーフ・オブ・ワーク制御カード304に送信することができる。作業指示104に基づいて、CPU(複数可)302又はプルーフ・オブ・ワーク制御カード304は、修正された作業指示306を生成することができ、この修正された作業指示306は、ユニバーサル非同期受信送受信機(UART)310又は他のプロトコルを介して、1つまたは複数のプルーフ・オブ・ワーク特定用途向け集積回路(ASIC)308に送信することができる。その後、プルーフ・オブ・ワークASIC308は生成値108を生成し、UART310を介してプルーフ・オブ・ワーク制御カードに送信することができる。その後、プルーフ・オブ・ワーク制御カードは、生成値108を、PCIe314などの接続を介して、たとえば1つまたは複数の浮動小数点特定用途向け集積回路312に送信することができる。浮動小数点ASIC312は、生成値108を使用して、入力として乱数を必要とする計算(機械学習計算、科学計算など)を実行することができる。
【0061】
図3には、特定のハードウェア構成要素及び特定の通信規格が描かれているが、当業者であれば、本開示の範囲を逸脱することなく、他のハードウェア構成要素及び通信規格を使用できることを認識するであろう。
【0062】
コンピューティングシステム300は、例えば、1つまたは複数のコンピューティングデバイス(例えば、サーバ、デスクトップ、ラップトップ、暗号通貨プルーフ・オブ・ワークシステムなど)を含むことができる。コンピューティングシステム300は、場合によっては、コンピューティングシステム100である、コンピューティングシステム100を含む、又はコンピューティングシステム100に含まれ得る(The computing system 300 can in some instances, be, comprise, or be comprised by a computing system 100)。
【0063】
ネットワーク301は、例えば、インターネット、又はコンピューティングデバイス間でコンピュータ可読データを転送するように構成された任意の他のネットワーク(例えば、LAN、WAN、ピアツーピアネットワークなど)であるか、又はそれらを含み得る。
【0064】
CPU302は、例えば、CPUとして動作するように構成された任意のハードウェア(例えば、マイクロプロセッサ、マイクロコントローラ、ソフトコアプロセッサなど)を含むことができる。
【0065】
プルーフ・オブ・ワーク制御カード304は、例えば、1つまたは複数の命令をASICに送信し、その見返りとして1つまたは複数の値を受信することによって、1つまたは複数のプルーフ・オブ・ワークASICを制御するように構成された任意のハードウェア又はハードウェアの組み合わせ(例えば、プロセッサ、入出力ハードウェアなど)を含むことができる。非限定的な例として、プルーフ・オブ・ワーク制御カード304は、場合によっては、1つまたは複数のAntminer制御ボードに関連する1つまたは複数のハードウェア構成要素タイプを含み得る。ある実施態様では、プルーフ・オブ・ワーク制御カード304は、1つ以上のプルーフ・オブ・ワークASIC308に修正された作業指示306を提供するように構成された修正ファームウェアを含むことができる。
【0066】
場合によっては、コンピューティングシステム300は、プルーフ・オブ・ワーク制御カードを使用せずに、1つまたは複数のプルーフ・オブ・ワークASICを制御できることが理解されよう。たとえば、ある実施態様では、CPU302又はランダム性に基づく計算システム110は、1つまたは複数のプルーフ・オブ・ワークASIC308を直接制御するように構成することができる。これは、たとえば、CPU302とプルーフ・オブ・ワークASIC308が互換性のある通信インタフェースを持ち、CPU302がプルーフ・オブ・ワークASIC308を制御するように適切にプログラムされている場合に実現できる。場合によっては、CPU302とプルーフ・オブ・ワークASIC308との間の通信を可能にするためにアダプタカードを使用することができる。ある実施態様では、プルーフ・オブ・ワークASIC308又は変更された作業指示306は、プルーフ・オブ・ワークASIC308に、作業指示104に関連付けられた1つまたは複数のプルーフ・オブ・ワーク出力(例えば、ブロックチェーン難易度:blockchain difficulty)と、ランダム性に基づく計算で使用するための1つまたは複数の生成値108とを別々に出力させるように構成することができる。
【0067】
修正された作業指示306は、例えば、1つまたは複数のプルーフ・オブ・ワークASICに1つまたは複数の生成値108を返させるように構成されたコンピュータ読み取り可能な指示を含むことができる。例えば、いくつかの実施例において、作業命令104は、難易度レベル(例えば、暗号「ノンス:nonce」と1つ以上のブロックチェーン取引からの詳細とを含む情報の計算されたハッシュの先頭ゼロの最小数)を構成することができる。このような場合、高難易度レベルは、場合によっては、非ランダム特性(例えば、各出力において非ランダム数の先頭ゼロを有する)を有する少数の生成された出力(例えば、14.5テラハッシュ/秒のハッシュレートで15日に1回の出力、ハッシュが成功する確率は264分の1)に関連することがある。ある実施態様において、修正された作業指示306は、作業指示104の難易度よりも低い難易度を構成することができる。いくつかの実施態様において、修正された作業指示306は、プルーフ・オブ・ワークASIC308に、作業指示104から受信された生成値と比較して、より大きなランダム性の程度を特徴とする生成値108(例えば、暗号ハッシュ値)をより多くの数(例えば、14.5テラハッシュ/秒のハッシュレートで3300/秒、ハッシュが成功する確率が232分の1など)出力させるように構成され得る。例えば、いくつかの実施態様において、修正された作業命令306の難易度は、プルーフ・オブ・ワークASIC308が実行する各作業(例えば、ハッシュを計算する各暗号ノンス)に対して生成値108を出力するような最小難易度とすることができる。場合によっては、修正された作業指示306は、プルーフ・オブ・ワークASIC308に対する1つ以上のファームウェア修正(firmware modifications)を含む。
【0068】
プルーフ・オブ・ワークASIC308は、例えば、プルーフ・オブ・ワークタスク(例えば、暗号ハッシュ、例えばSHA-256ハッシュ)を効率的に実行するように構成されたハードウェアを含むことができる。非限定的な例示として、プルーフ・オブ・ワークASIC308は、1つまたは複数のAntminerプルーフ・オブ・ワークASICに関連する1つまたは複数のハードウェアコンポーネントタイプを含み得る。いくつかの実施態様において、プルーフ・オブ・ワークASIC308は、プルーフ・オブ・ワークと乱数生成の両方を含む、本開示の複合計算負荷において使用するように構成されたASICであり得る。例えば、いくつかの実施態様において、プルーフ・オブ・ワークASIC308は、(例えば、ブロックチェーン難易度において)作業指示104に関連する1つまたは複数のプルーフ・オブ・ワーク出力と、乱数ベースの計算で使用するための1つまたは複数の生成値108とを別々に出力するように構成され得る。
【0069】
UART310は、例えば、ユニバーサル非同期レシーバ・トランスミッタ・プロトコル(universal asynchronous receiver-transmitter protocol)を使用して通信可能な1つまたは複数のデバイスを含むことができる。しかしながら、当業者であれば、示された通信タスクを実行するために、他のハードウェアタイプ及び他の通信プロトコルを使用できることを理解するであろう。
【0070】
浮動小数点ASIC312は、例えば、1つまたは複数の浮動小数点演算を効率的に実行するように構成されたハードウェア(例えば、GPU、行列乗算用に構成されたASICなど)を含むことができる。
【0071】
図3は、生成値108が直ちに使用されるために浮動小数点ASIC312に直接送信されることを描いているが、生成値108又はランダム値112は、1つまたは複数のコンピュータ読み取り可能な記憶媒体(たとえば、HBM、RAM、ROM、EPROM、EEPROM、フラッシュメモリ、磁気ディスクなど)を使用して後で使用するために格納されることができる場合があることが理解されよう。例えば、いくつかの実施態様において、単一のコンピューティングシステム300は、コンピューティングシステム300による後の検索のために、1つまたは複数の生成値108又はランダム値112を記憶することができる。他の実施態様では、1つまたは複数の生成値108又はランダム値112は、1つのコンピューティングシステムから別のコンピューティングシステムに(例えば、ネットワーク301を介して)転送されてもよく、いくつかの実施態様では、そのような通信の前、間、又は後に、コンピュータ読み取り可能な記憶媒体に記憶されてもよい。
【0072】
PCIe314は、例えば、ピーシーアイエクスプレス規格(Peripheral Component Interconnect Express規格)に従って通信する(伝達する)ように構成された任意のハードウェアを含むことができる。しかしながら、当業者であれば、他のハードウェアタイプ及び他の通信規格を使用して、上述の通信タスクを実行できることを理解するであろう。
【0073】
図4は、本開示による結果の一例を示す図表である。
図4は、3つの計算、すなわち、単独で実行されるプルーフ・オブ・ワーク計算404、単独で実行されるモンテカルロ計算406、及び本開示によるモンテカルロ計算とプルーフ・オブ・ワーク計算を組み合わせた計算408に関連する合計エネルギー使用量402を示し、モンテカルロ計算の乱数は、本開示のシステム及び方法に従ってプルーフ・オブ・ワーク計算の出力に基づいて生成された。計算408の合計エネルギーコストが、個別の計算406、404に関連するエネルギーコストの合計410と比較され、エネルギー節約412が計算された。実験結果は、様々な実験条件において正のエネルギー節約412を示した。いくつかの例では、エネルギー節約412は、プルーフ・オブ・ワーク計算404に関連するエネルギー使用量402の約半分に等しかった。
【0074】
図4が、プルーフ・オブ・ワーク計算及びモンテカルロ計算の総コストに対するエネルギー節約を示すのに対し、他の例示的な結果は、乱数生成自体のコストに対するエネルギー節約の大きさを示す。例えば、本開示によるいくつかの実験例では、Cプログラミング環境で乱数を生成するエネルギーコストが、本開示のシステム及び方法に従ってRAMから乱数を読み出すことに関連するエネルギーコストと比較された。このような場合、RAMからの読み出しは、乱数をゼロから生成するのに比べて90パーセントのエネルギー節約をもたらした。したがって、本開示のシステム及び方法は、同様の(例えば、同じ)タスクを低減されたエネルギーコストで実行することを可能にすることによって、コンピューティングシステムの機能を改善することが理解されよう。
【0075】
図5は、本開示の例示的な実施形態による、乱数をエネルギー効率よく生成するための例示的な方法のフローチャート図を示す。
図5は、説明及び議論の目的で特定の順序で実行されるステップを描いているが、本開示の方法は、特に図示された順序又は配置に限定されない。例示的な方法500の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略、再配置、組み合わせ、及び/又は適合することができる。
【0076】
502において、例示的方法500は、1つまたは複数のコンピューティングデバイスによって、プルーフ・オブ・ワークプロトコルに関連する1つまたは複数の作業指示を取得することを含むことができる。いくつかの実施態様において、1つまたは複数の作業指示は、作業指示104又は修正された作業指示306であるか、作業指示104又は修正された作業指示306を含むか、又はそれらに含まれ得る。場合によっては、ステップ502は、
図1及び
図3に関して説明した1つ以上のステップを含むことができる。
【0077】
504において、例示的方法500は、1つまたは複数のコンピューティングデバイスによって、作業指示に少なくとも部分的に基づく1つまたは複数の第1のタスクを実行することを含むことができる。いくつかの実施態様において、1つまたは複数のコンピューティングデバイスは、1つまたは複数のプルーフ・オブ・ワークシステム106又はプルーフ・オブ・ワークASIC308を含み得る。いくつかの実施態様において、ステップ504は、
図1又は
図3に関して説明した1つまたは複数のステップを含むことができる。
【0078】
506において、例示的方法500は、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の第1のタスクの実行中に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定することを含み得る。ある実施態様では、1つ以上の第1のタスク中に生成値は、生成値108であり得る。いくつかの実施態様において、ランダム値又は擬似ランダム値は、ランダム値112とすることができ、ランダム値112からなることができ、又はランダム値112によって構成されることができる。ある実施態様では、ステップ506は、
図1又は
図3に関して説明した1つ以上のステップを含むことができる。
【0079】
508において、例示的方法500は、1つまたは複数のコンピューティングデバイスによって、1つまたは複数のランダム値又は擬似ランダム値に基づいて、1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行することを含み得る。いくつかの実施例では、1つまたは複数のコンピューティングシステムは、1つまたは複数のランダム性に基づく計算システム110又は浮動小数点ASIC312を含み得る。いくつかの実施例では、ステップ508は、
図1又は
図3に関して説明した1つまたは複数のステップを含むことができる。
【0080】
図6は、本開示の例示的な実施形態によるグリッド安定化のための例示的な方法のフローチャート図を示す。
図6は、説明及び議論の目的で特定の順序で実行されるステップを描いているが、本開示の方法は、特に図示された順序又は配置に限定されない。例示的な方法600の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略、再配置、組み合わせ、及び/又は適合され得る。
【0081】
602において、例示的な方法600は、1つまたは複数のコンピューティングデバイスによって、現在の電力負荷を示すデータを取得することを含み得る。いくつかの実施態様において、現在の電力負荷は、1つまたは複数の電力負荷204であるか、これらを含むか、これらに含まれるか、又はこれらと関連し得る。いくつかの実施態様において、現在の電力負荷を示すデータは、使用データ218である、使用データ218を含む、又は使用データ218に含まれ得る。いくつかの実施態様において、ステップ602は、
図2に関して説明した1つ以上のステップを含むことができる。
【0082】
604において、例示的方法600は、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の電源装置から現在利用可能な電力量を示すデータを取得することを含むことができる。いくつかの実施態様において、1つまたは複数の電源は、1つまたは複数の電源202である、1つまたは複数の電源202を含む、又は1つまたは複数の電源202に含まれ得る。一部の実施態様において、現在利用可能な電力量を示すデータは、利用可能性データ216とすることができる。ある実施態様では、ステップ604は、
図2に関して説明した1つ以上のステップを含むことができる。
【0083】
606において、例示的な方法600は、現在の電力負荷と現在利用可能な電力量との比較に基づいて、少なくとも1つのコンピューティングタスクを実行するか否かを決定することを含み得る。いくつかの実施態様において、コンピューティングタスクは、コンピューティングシステム100、コンピューティングシステム300、又は補助的な負荷212に関連するプルーフ・オブ・ワークタスク又はランダム性に基づくコンピューティングタスクであり得る。いくつかの実施態様において、ステップ606は、
図1~3に関して説明した1つ以上のステップを含み得る。
【0084】
図7は、本開示の例示的な実施形態に従ってランダム値を生成するための例示的な方法のフローチャート図を示す。
図7は、説明及び議論の目的で特定の順序で実行されるステップを描いているが、本開示の方法は、特に図示された順序又は配置に限定されない。例示的な方法700の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略、再配置、組み合わせ、及び/又は適合することができる。
【0085】
702において、例示的方法700は、1つまたは複数のコンピューティングデバイスによって、プルーフ・オブ・ワークタスクに関連する第1の最小値を取得することを含み得る。いくつかの実施態様において、1つまたは複数のコンピューティングデバイスは、1つまたは複数のプルーフ・オブ・ワークシステム106又はプルーフ・オブ・ワークASIC308を含むことができる。いくつかの実施態様において、ステップ702は、
図1又は
図3に関して説明した1つまたは複数のステップを含むことができる。
【0086】
704において、例示的な方法700は、1つまたは複数のコンピューティングデバイスによって、プルーフ・オブ・ワークタスクに関連付けられた第1の最大値を取得することを含むことができる。いくつかの例では、ステップ704は、
図1又は
図3に関して説明した1つまたは複数のステップを含むことができる。
【0087】
706において、例示的方法700は、1つまたは複数のコンピューティングデバイスによって、プルーフ・オブ・ワークタスクとは異なる1つまたは複数の第2のタスクに関連付けられた確率分布に関連付けられた第2の最小値を取得することを含むことができる。いくつかの実施態様において、1つまたは複数のコンピューティングデバイスは、1つまたは複数のランダム性に基づく計算システム110又は浮動小数点ASIC312を含み得る。いくつかの実施態様において、ステップ706は、
図1又は
図3に関して説明した1つまたは複数のステップを含むことができる。
【0088】
708において、例示的方法700は、1つまたは複数のコンピューティングデバイスによって、1つまたは複数の第2のタスクに関連する確率分布に関連する第2の最大値を取得することを含み得る。いくつかの実施態様では、ステップ708は、
図1又は
図3に関して説明した1つまたは複数のステップを含み得る。
【0089】
710において、例示的な方法700は、1つまたは複数のコンピューティングデバイスによって、第1の最小値、第2の最小値、第1の最大値、及び第2の最大値に基づいて、プルーフ・オブ・ワークタスク中に生成された1つまたは複数の値をスケーリングして、1つまたは複数のスケーリングされたランダム値又は擬似ランダム値を生成することを含むことができる。いくつかの実施態様において、ステップ710は、
図1又は
図3に関して説明した1つまたは複数のステップを含むことができる。
【0090】
本明細書では、実施例を用いて、最良の態様を含む本発明を開示するとともに、任意の装置又はシステムの製造及び使用、ならびに組み込まれた方法の実行を含め、当業者であれば誰でも本発明を実施できるようにする。本発明の特許可能な範囲は特許請求の範囲によって定義され、当業者に思いつく他の実施例を含むことができる。そのような他の実施例は、特許請求の範囲の文言と異ならない構造要素を含む場合、又は特許請求の範囲の文言と実質的に異ならない同等の構造要素を含む場合、特許請求の範囲に含まれることが意図される。
【0091】
本発明のさらなる態様は、以下の条項の主題によって提供される。
[実施形態1]
プルーフ・オブ・ワークの計算と、ランダム性のソースを必要とする計算とを組み合わせた計算コストを削減するためのコンピュータ実装方法(A computer-implemented method for reducing a combined computation cost of a proof-of-work computation and a computation requiring a source of randomness)であって、1つまたは複数のコンピューティングデバイスにより、プルーフ・オブ・ワークプロトコルに関連する1つまたは複数の作業指示を取得するステップ(obtaining, by one or more computing devices, one or more work instructions associated with a proof-of-work protocol)と、前記1つまたは複数のコンピューティングデバイスにより、前記作業指示に少なくとも部分的に基づいて1つまたは複数の第1のタスクを実行するステップ(performing, by the one or more computing devices, one or more first tasks based at least in part on the work instructions)と、前記1つまたは複数のコンピューティングデバイスによって、前記1つまたは複数の第1のタスクの間に前記1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定するステップ(determining, by the one or more computing devices and based on one or more values generated by the one or more computing devices during the one or more first tasks, one or more random or pseudorandom values)と、前記1つまたは複数のコンピューティングデバイスによって、前記1つまたは複数のランダム値又は擬似ランダム値に基づいて、前記1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行するステップ(performing, by the one or more computing devices and based on the one or more random or pseudorandom values, one or more second tasks different from the one or more first tasks)と、を含む方法。
[実施形態2]
前記1つまたは複数のコンピューティングデバイスによって、現在の電力負荷を示すデータを取得するステップ(obtaining, by the one or more computing devices, data indicative of a current power load)と、前記1つまたは複数のコンピューティングデバイスによって、1つまたは複数の電源から現在利用可能な電力量を示すデータを取得するステップ(obtaining, by the one or more computing devices, data indicative of an amount of power currently available from one or more power supplies)と、現在の電力負荷と現在利用可能な電力量との比較に基づいて、前記1つまたは複数の第1のタスク及び前記1つまたは複数の第2のタスクのうちの少なくとも1つを実行するかどうかを決定するステップ(determining, based on a comparison between the current power load and the amount of power currently available, whether to perform at least one of the one or more first tasks and one or more second tasks)と、をさらに含む、先行するいずれかの実施形態に記載の方法。
[実施形態3]
前記プルーフ・オブ・ワーク・プロトコルが1つまたは複数のブロックチェーン・ネットワークに関連付けられる(the proof-of-work protocol is associated with one or more blockchain networks)、先行するいずれかの実施形態に記載の方法。
[実施形態4]
前記作業指示は、第1の難易度を特徴とする第1の作業指示であり(the work instructions are first work instructions characterized by a first difficulty level)、前記第1のタスクを実行することは、前記1つまたは複数のコンピューティングデバイスによって、前記作業指示に基づいて、第1の難易度よりも低い第2の難易度によって特徴付けられる1つまたは複数の修正された作業指示を生成するステップ(generating, by the one or more computing devices and based on the work instructions, one or more modified work instructions characterized by a second difficulty level that is lower than the first difficulty level)と、前記1つまたは複数のコンピューティングデバイスによって、前記修正された作業指示を、前記修正された作業指示の難易度に依存する生成値の数を出力するように構成された1つまたは複数のプロセッサに提供するステップであって、難易度が低いほど、出力される生成値の数が多くなる、前記ステップ(providing, by the one or more computing devices, the modified work instructions to one or more processors configured to output a number of generated values that is dependent on the difficulty level of the modified work instructions, wherein a lower difficulty level is associated with a higher number of generated values output)と、前記1つまたは複数のコンピューティングデバイスによって、及び前記1つまたは複数のプロセッサから、1つまたは複数の生成値を受信するステップ(receiving, by the one or more computing devices and from the one or more processors, one or more generated values)と、前記1つまたは複数のコンピューティングデバイスによって、及び前記1つまたは複数の生成値と前記第1の難易度レベルとの比較に基づいて、前記1つまたは複数の生成値のうちの少なくとも1つの生成値が前記第1の作業指示を満たしたかどうかを決定するステップ(determining, by the one or more computing devices and based on a comparison between the one or more generated values and the first difficulty level, whether at least one generated value of the one or more generated values has satisfied the first work instructions)と、前記1つまたは複数のブロックチェーン・ネットワークに関連する1つまたは複数のコンピューティングシステムに、前記少なくとも1つの生成値を提供するステップ(providing the at least one generated value to one or more computing systems associated with the one or more blockchain networks)と、を含む、先行するいずれかの実施形態に記載の方法。
[実施形態5]
1つ又は複数のランダム値又は擬似ランダム値を決定することは、前記1つまたは複数のコンピューティングデバイスによって、プルーフ・オブ・ワークプロトコルに関連する第1の最小値を取得するステップ(obtaining, by the one or more computing devices, a first minimum value associated with the proof-of-work protocol)と、前記1つまたは複数のコンピューティングデバイスによって、前記プルーフ・オブ・ワークプロトコルに関連する第1の最大値を取得するステップ(obtaining, by the one or more computing devices, a first maximum value associated with the proof-of-work protocol)と、前記1つまたは複数のコンピューティングデバイスによって、前記」1つまたは複数の第2のタスクに関連する確率分布に関連する第2の最小値を取得するステップ(obtaining, by the one or more computing devices, a second minimum value associated with a probability distribution associated with the one or more second tasks)と、前記1つまたは複数のコンピューティングデバイスによって、前記1つまたは複数の第2のタスクに関連する確率分布に関連する第2の最大値を取得するステップ(obtaining, by the one or more computing devices, a second maximum value associated with the probability distribution associated with the one or more second tasks)と、前記1つまたは複数のコンピューティングデバイスによって、前記第1の最小値、第2の最小値、第1の最大値、及び第2の最大値に基づいて、前記第1のタスク中に前記1つまたは複数のコンピューティングデバイスによって生成された前記1つまたは複数の値をスケーリングして、1つまたは複数のスケーリングされたランダム値又は擬似ランダム値を生成するステップ(scaling, by the one or more computing devices and based on the first minimum value, second minimum value, first maximum value, and second maximum value, the one or more values generated by the one or more computing devices during the first task to generate one or more scaled random or pseudorandom values)と、を含み、前記スケーリングされたランダム値又は擬似ランダム値に関連付けられた前記確率分布は、前記1つまたは複数の第2のタスクに関連付けられた確率分布に対応する(wherein a probability distribution associated with the scaled random or pseudorandom values corresponds to the probability distribution associated with the one or more second tasks)、先行するいずれかの実施形態に記載の方法。
[実施形態6]
前記少なくとも1つのタスクを実行するか否かを決定することが、前記現在の電力負荷と前記現在利用可能な電力量との間の比較に少なくとも部分的に基づいて、余剰電力量を特定するステップと、前記余剰電力量に基づいて実行すべき計算量を決定するステップと、を含む(determining whether to perform the at least one task comprises: identifying, based at least in part on the comparison between the current power load and the amount of power currently available, an amount of stranded power; and determining an amount of computation to perform based on the amount of stranded power)、先行するいずれかの実施形態に記載の方法。
[実施形態7]
前記余剰電力が、少なくとも1つの再生可能電源によって生成された電力を含む(the stranded power comprises power generated by at least one renewable power source)、先行するいずれかの実施形態に記載の方法。
[実施形態8]
前記1つまたは複数の第1のタスクを実行することは、1つまたは複数の暗号ハッシュを実行することを含む(performing the one or more first tasks comprises performing one or more cryptographic hashes)、先行するいずれかの実施形態に記載の方法。
[実施形態9]
前記1つまたは複数の暗号ハッシュが1つまたは複数のSHA-256ハッシュを含む(the one or more cryptographic hashes comprise one or more SHA-256 hashes)、先行するいずれかの実施形態に記載の方法。
[実施形態10]
前記1つまたは複数の第1のタスクの間に生成された前記1つまたは複数の値は、1つまたは複数の暗号ハッシュ値を含む(the one or more values generated during the one or more first tasks comprise one or more cryptographic hash values)、先行するいずれかの実施形態に記載の方法。
[実施形態11]
前記1つまたは複数のコンピューティングデバイスが、暗号ハッシュ値を生成するように構成された1つまたは複数の特定用途向け集積回路を含む(the one or more computing devices comprise one or more application-specific integrated circuits configured for generating cryptographic hash values)、先行するいずれかの実施形態に記載の方法。
[実施形態12]
前記1つまたは複数の第1のタスクが、暗号ハッシュ値を生成するように構成された前記1つまたは複数の特定用途向け集積回路を使用して実行される(the one or more first tasks are performed using the one or more application-specific integrated circuits configured for generating cryptographic hash values)、先行するいずれかの実施形態に記載の方法。
[実施形態13]
前記1つまたは複数の第2のタスクが、1つまたは複数の機械学習モデルを訓練することを含む(the one or more second tasks comprise training one or more machine-learned models)、先行するいずれかの実施形態に記載の方法。
[実施形態14]
前記1つまたは複数の第2のタスクが、1つまたは複数の機械学習モデルを使用して推論を実行することを含む(the one or more second tasks comprise performing inference using one or more machine-learned models)、先行するいずれかの実施形態に記載の方法。
[実施形態15]
前記1つまたは複数の第2のタスクが画像生成を含む(the one or more second tasks comprise image generation)、先行するいずれかの実施形態に記載の方法。
[実施形態16]
前記1つまたは複数の第2のタスクがテキスト生成を含む(the one or more second tasks comprise text generation)、先行するいずれかの実施形態に記載の方法。
[実施形態17]
前記1つまたは複数のコンピューティングデバイスが、1つまたは複数の浮動小数点演算を実行するように構成された1つまたは複数の特定用途向け集積回路を含む(the one or more computing devices comprise one or more application-specific integrated circuits configured for performing one or more floating-point operations)、先行するいずれかの実施形態に記載の方法。
[実施形態18]
前記1つまたは複数の浮動小数点演算を実行するように構成された前記1つまたは複数の特定用途向け集積回路が、1つまたは複数のグラフィック処理ユニットを含む(the one or more application-specific integrated circuits configured for performing one or more floating-point operations comprise one or more graphics processing units)、先行するいずれかの実施形態に記載の方法。
[実施形態19]
前記1つまたは複数の第2のタスクが、前記1つまたは複数のグラフィック処理ユニットを使用して実行される(the one or more second tasks are performed using the one or more graphics processing units)、先行するいずれかの実施形態に記載の方法。
[実施形態20]
前記1つまたは複数の第2のタスクが、モンテカルロ・サンプリングを含む(the one or more second tasks comprise Monte Carlo sampling)、先行するいずれかの実施形態に記載の方法。
[実施形態21]
前記1つまたは複数の第2のタスクが、棄却サンプリングを含む(the one or more second tasks comprise rejection sampling)、先行するいずれかの実施形態に記載の方法。
[実施形態22]
前記1つまたは複数の第2のタスクが、メトロポリス・ヘイスティングス・サンプリングを含む(he one or more second tasks comprise Metropolis-Hastings sampling)、先行するいずれかの実施形態に記載の方法。
[実施形態23]
前記1つまたは複数の第2のタスクが、ギブス・サンプリングを含む(the one or more second tasks comprise Gibbs sampling)、先行するいずれかの実施形態に記載の方法。
[実施形態24]
前記1つまたは複数のコンピューティングデバイスによって、かつ1つまたは複数の非一過性のコンピュータ可読媒体を使用して、前記1つまたは複数の第1のタスクの間に生成された前記1つまたは複数の値、及び前記1つまたは複数のランダム値又は擬似ランダム値のうちの少なくとも1つを記憶するステップ(storing, by the one or more computing devices and using one or more non-transitory computer-readable media, at least one of: the one or more values generated during the one or more first tasks; and the one or more random or pseudorandom values)と、前記1つまたは複数のコンピューティングデバイスによって、かつ前記1つまたは複数の非一過性のコンピュータ可読媒体から、前記記憶された値を検索するステップ(retrieving, by the one or more computing devices and from the one or more non-transitory computer-readable media, the values stored)と、をさらに含み、前記第2のタスクは、前記検索された値を使用して実行される(the second tasks are performed using the retrieved values)、先行するいずれかの実施形態に記載の方法。
[実施形態25]
前記第1のタスクに関連する特定用途向け集積回路から、前記第2のタスクに関連する特定用途向け集積回路に、1つまたは複数の値を伝達するステップ(communicating, from an application-specific integrated circuit associated with the first task and to an application-specific integrated circuit associated with the second task, one or more values)と、前記第2のタスクに関連する前記特定用途向け集積回路に関連する1つまたは複数のランダムアクセスメモリに、前記伝達された値をロードするステップ(loading, into one or more random access memories associated with the application-specific integrated circuit associated with the second task, the communicated values)とをさらに含み、前記第2のタスクを実行することが、前記1つまたは複数のランダムアクセスメモリを使用して前記伝達された値にアクセスすることを含む(performing the second task comprises accessing the communicated values using the one or more random access memories)、先行するいずれかの実施形態に記載の方法。
[実施形態26]
1つまたは複数のプロセッサと、コンピューティングシステムに1つまたは複数のオペレーションを実行させるために前記1つまたは複数のプロセッサによって実行可能な命令を記憶する1つまたは複数の非一過性のコンピュータ可読媒体と、を含むコンピューティングデバイス(A computing device comprising one or more processors and one or more non-transitory computer-readable media storing instructions that are executable by the one or more processors to cause the computing system to perform one or more operations)であって、前記オペレーションは、プルーフ・オブ・ワーク・プロトコルに関連する1つまたは複数の作業指示を取得するステップ(obtaining one or more work instructions associated with a proof-of-work protocol)と、前記作業指示に少なくとも部分的に基づいて1つまたは複数の第1のタスクを実行するステップ(performing one or more first tasks based at least in part on the work instructions)と、前記1つまたは複数の第1のタスクの間に前記1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定するステップ(determining, based on one or more values generated by the one or more computing devices during the one or more first tasks, one or more random or pseudorandom values)と、前記1つまたは複数のランダム値又は擬似ランダム値に基づいて、前記1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行するステップ(performing, based on the one or more random or pseudorandom values, one or more second tasks different from the one or more first tasks)と、を含む。
[実施形態27]
1つまたは複数のプロセッサと、コンピューティングシステムに1つまたは複数のオペレーションを実行させるために1つまたは複数のプロセッサによって実行可能な命令を記憶する1つまたは複数の非一過性のコンピュータ可読媒体とを備えるコンピューティングデバイスであって、オペレーションは、1つまたは複数の先行するいずれかの実施形態に記載の方法を実行することを含む、コンピューティングデバイス。
[実施形態28]
1つまたは複数のオペレーションを実行するために1つまたは複数のコンピューティングシステムによって実行可能な命令を記憶する1つまたは複数の非一過性のコンピュータ読み取り可能媒体であって、前記オペレーションは、プルーフ・オブ・ワーク・プロトコルに関連する1つまたは複数の作業指示を取得するステップと、作業指示に少なくとも部分的に基づいて1つまたは複数の第1のタスクを実行するステップと、1つまたは複数の第1のタスクの間に1つまたは複数のコンピューティングデバイスによって生成された1つまたは複数の値に基づいて、1つまたは複数のランダム値又は擬似ランダム値を決定するステップと、1つまたは複数のランダム値又は擬似ランダム値に基づいて、1つまたは複数の第1のタスクとは異なる1つまたは複数の第2のタスクを実行するステップと、を含む、1つまたは複数の非一過性のコンピュータ可読媒体。
[実施形態29]
1つまたは複数のオペレーションを実行するために1つまたは複数のコンピューティングシステムによって実行可能である命令を記憶する1つまたは複数の非一過性のコンピュータ可読媒体であって、オペレーションは、1つまたは複数の先行するいずれかの実施形態に記載の方法を実行することを含む、1つまたは複数の非一過性のコンピュータ可読媒体。
【符号の説明】
【0092】
100、300:コンピューティングシステム 102:制御システム 104:作業指示 106:プルーフ・オブ・ワークシステム 108:生成値 110:ランダム性に基づく計算システム 112:ランダム値 114:計算結果 202:電力源 204:電力負荷 206:連続的な電力源 208:補助的な電力源 210:連続的な負荷 212:補助的な負荷 214:グリッド安定化システム 216:利用可能性データ 218:電力使用量データ 220:指示 222:余剰電力 301:ネットワーク 302:CPU 303:監督制御 304:プルーフ・オブ・ワーク制御カード 306:修正された作業指示 308:プルーフ・オブ・ワーク特定用途向け集積回路/プルーフ・オブ・ワークASIC 310:ユニバーサル非同期レシーバ・トランスミッタ/UART 312:浮動小数点特定用途向け集積回路/浮動小数点ASIC 314:PCIe 402:合計エネルギー使用量 404:プルーフ・オブ・ワーク計算 406:モンテカルロ計算 408:MCとPOWの組み合わせ 410:MCとPOWの個別計算 412:エネルギー節約
【外国語明細書】