図面 (/)

技術 タスクを共同処理するためのプラットフォーム

出願人 バランスド メディア テクノロジー エルエルシー
発明者 コーリー、クラーク
出願日 2018年6月5日 (2年8ヶ月経過) 出願番号 2019-568252
公開日 2020年7月30日 (6ヶ月経過) 公開番号 2020-522364
状態 未査定
技術分野 計算機間の情報転送 ストアードプログラム 電子ゲーム機
主要キーワード サポート要素 メッシュベース スレッドベース 技術的ソリューション ブロックチェーン ネットワークタスク 三次元パターン リソース集約
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2020年7月30日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (6)

課題・解決手段

コンピューティングタスク協調処理のためのプラットフォームのための方法、システム、及び媒体。この方法は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーション(334)をクライアント装置(106〜114)に送信することを含む。プログラムコードが実行されると、クライアント装置は、対話型アプリケーションのためのユーザ・インターフェースを生成し、生成されたユーザ・インターフェースを使用して、クライアント装置のユーザからの入力を要求し、要求された入力を受信し、クライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理し、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信する。この方法は、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを受信して処理し、コンピューティング・タスクを処理することをさらに含む。

概要

背景

規模データセットクラウドベース計算処理及びデータ処理に対する需要が高まるにつれて、コンピュータリソースに対する需要も高まる。グリッドコンピューティング又は分散コンピューティングは、大きなデータセットを処理するために使用することができる膨大なコンピューティング・パワーを生成するためのソリューションである。グリッド・コンピューティング又は分散コンピューティングは、複数のロケーション(すなわち、異なる遠隔に位置するコンピューティング装置)からのコンピュータ・リソースの集合を利用して、関連するタスクを実行するコンピューティングの一種である。ボランティア・コンピューティングは、コンピュータの所有者又はユーザが自分のコンピューティング・リソースを1つ又は複数のプロジェクト寄付するグリッド・コンピューティングの一種である。多くのボランティア・コンピューティング・システムは、ボランティアのコンピュータ上のクライアントプログラムがタスクを要求し処理し、そうでなければコンピュータはアイドル状態になる、プルベースのシステムを使用する。

ボランティア・コンピューティングは、マイクロサビスを使用したり、プロジェクトをワークユニットと呼ばれる小さなチャンクに分割する並列問題を解決して、ボランティア・クライアントを実行しているマシン配布するための効果的なツールである。データ処理には複数のクライアントが使用されるため、通常、プロセスから最大限の価値を引き出すには、データとアルゴリズムを簡単に並列化できる必要がある。ボランティア・コンピューティング・システムのリソースは、オンサイト専用リソース購入して保守したり、クラウドベースのデータ処理サービス調達したりする場合に比べて、データ処理のコストを大幅に削減できる。

概要

コンピューティング・タスクの協調処理のためのプラットフォームのための方法、システム、及び媒体。この方法は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーション(334)をクライアント装置(106〜114)に送信することを含む。プログラムコードが実行されると、クライアント装置は、対話型アプリケーションのためのユーザ・インターフェースを生成し、生成されたユーザ・インターフェースを使用して、クライアント装置のユーザからの入力を要求し、要求された入力を受信し、クライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理し、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信する。この方法は、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを受信して処理し、コンピューティング・タスクを処理することをさらに含む。

目的

本開示の実施形態は、コンピューティング・タスクの協調処理のためのプラットフォームを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

コンピューティングタスクを処理する方法であって、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアントアプリケーション(334)を複数のクライアント装置(106〜114)に送信し、前記プログラムコードは、複数のクライアント装置のうちの1つ又は複数のプロセッサ(310)によって実行されると、1つ又は複数のクライアント装置に、対話型アプリケーションのためのユーザ・インターフェースを生成させ、対話型アプリケーションのために生成されたユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求させ、要求された入力を受信させ、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを受信して処理して、コンピューティング・タスクを処理する、方法。

請求項2

前記対話型アプリケーションはビデオゲームであり、前記機械学習アプリケーションの処理に使用される要求され且つ受信された入力は、ビデオゲームのゲームプレイ中に要求され且つ受信される、請求項1に記載の方法。

請求項3

前記複数のクライアント装置はボランティア・コンピューティング・グリッドを形成し、機械学習アプリケーションの少なくとも一部の処理は、前記ボランティア・コンピューティング・グリッド内のクライアント装置のうちの少なくとも1つによって受信された受信入力に少なくとも部分的に基づいて実行される、請求項1に記載の方法。

請求項4

前記1つのクライアント装置が前記1つ又は複数のクライアント・アプリケーションを実行しているときに、前記複数のクライアント装置のうちの1つに少なくとも助成されたメディアコンテンツを提供することを可能にすることをさらに含む、請求項1に記載の方法。

請求項5

前記複数のクライアント装置を介して完了のためのタスクをブロックチェーンに追加することを、さらに含み、前記タスクは、前記1つ又は複数のクライアント装置のユーザからの入力を完了するために必要とし、前記結果に関連する前記データを受信し且つ処理することは、1つ又は複数のクライアント装置からタスクの完了としてブロックチェーンにポストされるレコードを受信し、タスクに関連する基準に基づいて受信したレコードを検証し、検証されたレコードをブロックチェーンに追加することをさらに含む、請求項1記載の方法。

請求項6

コンピューティング・タスクを処理するためのシステム(100)であって、通信インターフェース(220)と、前記通信インターフェースに動作可能に接続されたプロセッサ(210)とを含み、前記通信インターフェース(220)が、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアントアプリケーション(334)を複数のクライアント装置(106〜114)に送信し、前記プログラムコードは、複数のクライアント装置のうちの1つ又は複数のプロセッサ(310)によって実行されると、1つ又は複数のクライアント装置に、対話型アプリケーションのためのユーザ・インターフェースを生成させ、対話型アプリケーションのために生成されたユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求させ、要求された入力を受信させ、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させて、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを受信するように構成され、前記プロセッサ(210)が、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを処理して、コンピューティング・タスクを処理するように構成される、システム

請求項7

前記対話型アプリケーションはビデオゲームであり、機械学習アプリケーションの処理に使用される要求され且つ受信された入力は、ビデオゲームのゲームプレイ中に要求され且つ受信される、請求項6に記載のシステム。

請求項8

前記複数のクライアント装置はボランティア・コンピューティング・グリッドを形成し、機械学習アプリケーションの少なくとも一部の処理は、前記ボランティア・コンピューティング・グリッド内のクライアント装置のうちの少なくとも1つによって受信された受信入力に少なくとも部分的に基づいて実行される、請求項6に記載のシステム。

請求項9

前記プロセッサは、前記1つのクライアント装置が前記1つ又は複数のクライアント・アプリケーションを実行しているときに、前記複数のクライアント装置のうちの1つに少なくとも補助されたメディアコンテンツが提供されることを可能にするようにさらに構成される、請求項6に記載のシステム。

請求項10

前記プロセッサは、複数のクライアント装置を介して完了のためのタスクをブロックチェーンに追加するようにさらに構成され、タスクは完了するために1つ又は複数のクライアント装置のユーザからの入力を必要とし、前記通信インターフェースは、結果に関連するデータにおいて、タスクの完了としてブロックチェーンにポストされるレコードを1つ又は複数のクライアント装置から受信するように構成され、前記プロセッサは、タスクに関連する基準に基づいて受信されたレコードを検証し、検証されたレコードをブロックチェーンに追加するようにさらに構成される、請求項6に記載のシステム。

請求項11

対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコード(334)を含む非一時的なコンピュータ可読媒体であって、前記プログラムコードは、電子デバイス(300)のプロセッサによって実行されると、電子デバイスに、対話型アプリケーションのためのユーザ・インターフェースを生成させ、対話型アプリケーションのために生成されたユーザ・インターフェースを使用して電子デバイスのユーザからの入力を要求させ、要求された入力を受信させ、電子デバイスのコンピューティング・リソースを使用して機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる、コンピュータ可読媒体。

請求項12

前記対話型アプリケーションはビデオゲームであり、前記機械学習アプリケーションの処理に使用される要求され且つ受信された入力は、ビデオゲームのゲームプレイ中に要求され且つ受信される、請求項11に記載のコンピュータ可読媒体。

請求項13

前記電子デバイスは、ボランティア・コンピューティング・グリッドを形成する複数のクライアント装置のうちの1つであり、前記機械学習アプリケーションの少なくとも一部の処理は、前記ボランティア・コンピューティング・グリッド内のクライアント装置のうちの少なくとも1つによって受信された受信入力に少なくとも部分的に基づいて実行される、請求項11に記載のコンピュータ可読媒体。

請求項14

前記コンピュータ可読媒体は、前記電子デバイスの前記プロセッサによって実行されると、前記電子デバイスが前記対話型アプリケーション又は前記機械学習アプリケーションのうちの少なくとも1つに関連する前記プログラムコードを処理しているときに、前記電子デバイスに、少なくとも助成されたメディアコンテンツを受信させるプログラムコードをさらに備える、請求項11に記載のコンピュータ可読媒体。

請求項15

前記電子デバイスの前記プロセッサによって実行されると、前記電子デバイスに、ブロックチェーンから完了のためのタスクであって完了のために電子デバイスのユーザからの入力を必要とするタスクを受信させ、電子デバイスのユーザからの入力を要求させ、受信することを含むタスクを実行させ、結果に関連するデータにおいてタスクの完了としてブロックチェーンにポストされるレコードを送信させる、プログラムコードをさらに含む、請求項11に記載のコンピュータ可読媒体。

技術分野

0001

関連出願及び優先権の主張への相互参照
本出願は、2017年6月5日に出願された米国仮特許出願第62/515,398号の優先権を主張する。上記特許文献の内容は、参照により本明細書に組み込まれる。

0002

本開示は一般に、ボランティアグリッドコンピューティング・システムに関する。より具体的には、本開示はコンピューティング・タスク協調処理のためのプラットフォームに関する。

背景技術

0003

規模データセットクラウドベース計算処理及びデータ処理に対する需要が高まるにつれて、コンピュータリソースに対する需要も高まる。グリッド・コンピューティング又は分散コンピューティングは、大きなデータセットを処理するために使用することができる膨大なコンピューティング・パワーを生成するためのソリューションである。グリッド・コンピューティング又は分散コンピューティングは、複数のロケーション(すなわち、異なる遠隔に位置するコンピューティング装置)からのコンピュータ・リソースの集合を利用して、関連するタスクを実行するコンピューティングの一種である。ボランティア・コンピューティングは、コンピュータの所有者又はユーザが自分のコンピューティング・リソースを1つ又は複数のプロジェクト寄付するグリッド・コンピューティングの一種である。多くのボランティア・コンピューティング・システムは、ボランティアのコンピュータ上のクライアントプログラムがタスクを要求し処理し、そうでなければコンピュータはアイドル状態になる、プルベースのシステムを使用する。

0004

ボランティア・コンピューティングは、マイクロサビスを使用したり、プロジェクトをワークユニットと呼ばれる小さなチャンクに分割する並列問題を解決して、ボランティア・クライアントを実行しているマシン配布するための効果的なツールである。データ処理には複数のクライアントが使用されるため、通常、プロセスから最大限の価値を引き出すには、データとアルゴリズムを簡単に並列化できる必要がある。ボランティア・コンピューティング・システムのリソースは、オンサイト専用リソース購入して保守したり、クラウドベースのデータ処理サービス調達したりする場合に比べて、データ処理のコストを大幅に削減できる。

0005

本開示の実施形態は、コンピューティング・タスクの協調処理のためのプラットフォームを提供する。

0006

一実施形態では、コンピューティング・タスクを処理するための方法が提供される。この方法は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーションを複数のクライアント装置に送信することを含む。プログラムコードは、複数のクライアント装置のうちの1つ又は複数のプロセッサによって実行されると、1つ又は複数のクライアント装置に、対話型アプリケーション用のユーザ・インターフェースを生成させ、生成された対話型アプリケーション用のユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求させ、要求された入力を受信させ、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。この方法は、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを受信して処理して、コンピューティング・タスクを処理することをさらに含む。

0007

別の実施形態では、コンピューティング・タスクを処理するためのシステムが提供される。システムは、通信インターフェースと、通信インターフェースに動作可能に接続されたプロセッサとを含む。通信インターフェースは、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーションを複数のクライアント装置に送信するように構成される。プログラムコードは、複数のクライアント装置のうちの1つ又は複数のプロセッサによって実行されると、1つ又は複数のクライアント装置に、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求させ、要求された入力を受信させ、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。通信インターフェースは、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを受信するようにさらに構成される。プロセッサは、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを処理して、コンピューティング・タスクを処理するように構成される。

0008

別の実施形態では、非一時的なコンピュータ可読媒体が提供される。非一時的なコンピュータ可読媒体は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む。プログラムコードは電子デバイスのプロセッサによって実行されると、電子デバイスに、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、電子デバイスのユーザからの入力を要求させ、要求された入力を受信させ、電子デバイスのコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。

0009

他の技術的特徴は、以下の図面、説明、及び特許請求の範囲から当業者には容易に明らかであろう。

図面の簡単な説明

0010

本開示及びその利点をより完全に理解するために、以下の説明を添付の図面と併せて参照する。添付の図面では、同様の参照番号は同様の部分を表す:

0011

図1は、本開示の様々な実施形態が実装され得る例示的なネットワーク化されたシステムを示す;

0012

図2は、本開示の様々な実施形態が実装され得るサーバの一例を示す;

0013

図3は、本開示の様々な実施形態が実装され得るクライアント装置の一例を示す;

0014

図4は、本開示の様々な実施形態による、コンピューティング・タスクの協調処理のためのプラットフォームを提供するためのプロセスのフローチャートを示す。

0015

図5は、本開示の様々な実施形態による、ボランティア・コンピューティング・グリッドに参加するためのプロセスのフローチャートを示す。

実施例

0016

詳細な説明
以下で論じる図1図5、及び本特許文献における本開示の原理を説明するために使用される様々な実施形態は、例示のためだけのものであり、本開示の範囲を限定するものと決して解釈されるべきではない。当業者は、本開示の原理が任意の適切に構成されたシステム又はデバイスにおいて実装され得ることを理解するのであろう。

0017

本開示の実施形態は、それらの証明された価値にもかかわらず、ボランティア・コンピューティング・グリッドが信頼性の低さを含み、アクティブ状態なままのユーザ基盤に依存しているために、技術的問題を有していることを認識する。本開示の実施形態は、ユーザが自分の処理能力共有するようにいかにインセンティブを与えるかが、ボランティア・コンピューティング・グリッドの主要な課題であることを認識する。本開示の実施形態は、ビデオゲームのような対話型アプリケーションを提供して、大規模な科学的問題又はコンピューティング問題に対する、コンピューティング・デバイス及び問題解決スキルの両方について、大勢の視聴者と関わる。

0018

本開示の実施形態は、ボランティア・コンピューティング・グリッド内のデバイスによるコンピューティング・リソースの寄付が、ボランティア・コンピューティング・グリッドが利用可能なコンピューティング・タスク処理の完全なポテンシャルを利用していないという技術的問題をさらに認識する。本開示の実施形態は、機械学習アプリケーション用のデータを生成するための対話型アプリケーションを提供し、利用する。これらの対話型アプリケーションは、ユーザに対しては直接的に、又はコミュニティ個人又は組織あるいはコミュニティ全体に対しては間接的に、フィードバック報酬アクセスメディアコンテンツ、又はエンターテイメントを介した入力又は対話へのインセンティブをユーザ又はコミュニティに与える。例えば、これらの対話型アプリケーションには、ビデオゲーム、メディアアプリケーション、又はユーザ入力や対話を奨励または利用するその他のアプリケーションが含まれる。本明細書で使用されるように、機械学習は、入力を使用してモデル構築して、タスクの処理を反復的かつ漸進的に改善するための統計的技法の使用である。本明細書で使用されるように、例示的な機械学習アプリケーションには、データ科学、分析人工知能AI)、及びデータマイニング・アプリケーションが含まれるが、これらには限定されない。例えば、ビデオゲームは、ディープニューラルネットワークなどの機械学習アルゴリズムトレーニングデータを生成するために適用され、教師付き学習などの決定を評価するために適用され、ソリューションに突然変異を与えるために適用され、及び/又は人間の直感によって提供または支援されるその他の付加的なヒューリスティック・プロセスのために適用される。本開示の実施形態は、また、ユーザがビデオゲームをプレイしている間、又はアイドル時間中に、コンピューティング・リソース(例えば、処理能力、記憶能力、及びネットワーク接続)を利用することにより、ビデオゲームを利用してボランティア・コンピューティングを行う機会を提供する。例えば、コンピューティング・リソースは、バックグラウンドで実行されているアプリケーションで利用されてユーザに更新を提供したり、コミュニティ等への接続を維持したりする。そして、アイドル状態のコンピューティング・リソースを利用している間はすべて、利用され得る。ボランティア・コンピューティングは、分散コンピューティング環境に参加している多数のゲームデバイスを介して、利用可能な大量のコンピューティング・パワーにより、大規模な処理とアルゴリズム速度の向上を提供する。

0019

したがって、本開示の実施形態は、コンピューティング・タスクの協調処理のためのプラットフォームを介して技術的ソリューションを提供する。様々な実施形態は、機械学習アプリケーションのための魅力的なエンターテイメントに統合されたボランティア・グリッド・コンピューティングを利用することによって、人間の知覚及び構造化されていない問題解決スキルを生のコンピューティング・パワーと組み合わせるクラウド・コンピューティング・プラットフォームを提供する。ウェブブラウザ、ゲーム、又はアプリケーションを実行する任意のWi-Fi対応デバイスは、分散コンピューティング環境の一部になる。本開示の実施形態は、また、プログラマ研究者、及び開発者が接続されたデバイスを利用してデータを分類、検証、検索、および処理するのを支援するための汎用インターフェースを提供する。

0020

本開示の実施形態は、また、ビデオゲームなどの対話型エンターテイメントを利用して、人々を関与させてオンラインに保ち、コンピューティング・リソースを利用する時間を増やして、アイドル状態及びアクティブ状態のコンピューティング時間の両方を活用する。対話型エンターテイメントは、コンテンツに積極的に関与する人を含む。その結果、本開示の実施形態は、クラウドソーシング技術を利用して機械学習を改善する機会を提供する。本開示の実施形態は、従来型のクラウド・コンピューティングに関連するインフラストラクチャ費用なしで、マシンと人間とが対話してソリューションをより速く見つける新しいタイプのクラウド・ネットワークを可能にする。本開示の実施形態は、また、ゲームコミュティなどの大規模なオンラインコミュニティに対し、より良い世界を創造するのに役立つ重要な問題を処理するのを支援するために、すでにエンターテイメントに費やしている時間を使用するようにモチベーションを与え、権限を与えることを提供する。

0021

図1は、本開示の様々な実施形態が実装され得る、例示的なネットワーク化されたシステム100を示す。図1に示されるネットワーク化されたシステム100の実施形態は、単に例示のためのものである。本開示の範囲から逸脱することなく、ネットワーク化されたシステム100の他の実施形態を使用することができる。

0022

図1に示すように、システム100は、システム100内の種々の構成要素間の通信を容易にするネットワーク101を含む。例えば、ネットワーク101は、ネットワークアドレス間でインターネットプロトコル(IP)パケット又は他の情報を通信する。ネットワーク101は、1つ又は複数のローカルエリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、仮想プライベート・ネットワーク(VPN)、インターネットなどのグローバル・ネットワークの全部又は一部、又は1つ又は複数の位置にある、1つ又は複数の任意の他の通信システムを含むことができる。

0023

ネットワーク101は、種々のサーバ102〜104と、種々のクライアント装置106〜114との間の通信を容易にする。サーバ102〜104の各々は、1つ又は複数のクライアント装置106〜114のためにソフトウェアを含むコンピューティング・サービスを提供することができる、任意の適切な電子コンピューティング装置又は処理装置とすることができる。サーバ102〜104の各々は例えば、1つ又は複数の処理装置、命令及びデータを記憶する1つ又は複数のメモリ、及びネットワーク101を介した通信を容易にする1つ又は複数のネットワーク・インターフェースを含むことができる。例えば、以下でより詳細に説明するように、サーバ102は、クライアント装置106〜114を使用してボランティア・グリッド・コンピューティングを調整することによって、グリッド・コンピューティングを使用する協調コンピューティング、研究、又は開発のためのプラットフォームを提供又は管理することができる。サーバ103は、以下でより詳細に説明するように、クラウドソーシング技術を利用して機械学習アルゴリズムを改善するソフトウェア又はゲーム開発に分類されたサーバとすることができる。サーバ104は、研究者、開発者、又はプラットフォームを使用して処理される必要があるプロジェクト又はタスクを有する他のグリッド・コンピューティングの消費者に関連付けられたサーバとすることができる。

0024

各クライアント装置106〜114は、ネットワーク101を介して少なくとも1つのサーバ又は他のコンピューティング装置と対話する、任意の適切な電子コンピューティング装置又は処理装置を表す。この例では、クライアント装置106〜114は、デスクトップ・コンピュータ106、携帯電話又はスマートフォン108、タブレット・コンピュータ110、ラップトップ・コンピュータ112、ビデオゲーム・コンソール114、セットトップボックス及び/又はテレビ等を含む。しかしながら、ネットワーク化されたシステム100では、任意の他の又は追加のクライアント装置を使用することができる。例えば、システム100のクライアント装置106〜114の1つとして、任意のインターネット又はネットワークに接続可能な装置、又はIoT(Internet of Things)装置(例えば、Smart TV、冷蔵庫、Raspberry PIなど)を使用することができる。以下で説明するように、様々な実施形態では、クライアント装置106〜114は、サーバ102の調整の下で参加して、コンピューティング・タスクの協調処理のためのプラットフォームを提供するためのボランティア・コンピューティング・グリッドを(おそらく、他のコンピューティング装置と共に)形成する。例えば、本明細書で説明するように、クライアント装置106〜114は、コンピューティング・グリッドの個々のセルであると考えることができる。さらに、個々のセルは、集中型サーバの有無にかかわらず、例えば、ピアツーピアアドホック、及び/又はメッシュベースのネットワークを使用して、互いに又はサーバと直接的又は間接的に通信することができる。

0025

様々な実施形態では、クライアント装置106〜114に関連するサーバ(例えば、サーバ102)は、コンピュータ・タスクを処理するためのコンピューティング・グリッドを形成する。様々な実施形態では、サーバ102は、コンピューティング・グリッドのタスク及びセルの、調整、提供、及び追跡のためのカスタムコードを管理する。他の実施形態では、サーバ102が、コンピューティング・グリッド内のセルを接続する仮想プライベート・ネットワーク(VPU)を管理する。これらの実施形態では、市販のソフトウェアをコンピューティング・グリッドによって実行して、コンピューティング・タスクを実行することができる。

0026

図1はネットワーク化されたシステム100の一例を示しているが、図1には様々な変更を加えることができる。例えば、システム100は任意の適切な構成で任意の数の各構成要素を含むことができ、サーバ102〜104及びクライアント装置106〜114のそれぞれは、システム100の一部である任意の数のサーバ及び/又はクライアント装置を表すことができる。一般に、コンピューティング及び通信システムは多種多様な構成になり、図1は、本開示の範囲を任意の特定の構成に限定しない。図1はこの特許文献に開示されている様々な特徴を使用することができる1つの動作環境を示しているが、これらの特徴は任意の他の適切なシステムで使用することができる。

0027

図2及び図3は、本開示の様々な実施形態による、ネットワーク化されたシステムにおける例示的なコンピューティング装置を示す。特に、図2がサーバ200の一例を示し、図3はクライアント装置300の一例を示す。この具体的な例では、サーバ200が図1のサーバ102〜104のうちの任意の1つを表し、クライアント装置300は図1のクライアント装置106〜114のうちの1つ又は複数を表すことができる。

0028

図2に示すように、サーバ200は、バスシステム205を含む。バスシステム205は、プロセッサ(複数可)210、記憶装置215、通信インターフェース(又は回路)220、及び入出力(I/O)ユニット225の間の通信をサポートする。プロセッサ210は、メモリ230にロードされ得る命令を実行する。プロセッサ210は、任意の適切な数及びタイプのプロセッサ又は他のデバイスを任意の適切な構成で含むことができる。プロセッサ210のタイプの例には、マイクロプロセッサマイクロコントローラデジタル信号プロセッサフィールドプログラマブルゲートアレイ特定用途向け集積回路、及びディスクリート回路が含まれる。

0029

メモリ230及び永続的なストレージ235は、記憶装置215の例である。記憶装置215は、情報(データ、プログラムコード、及び/又は他の適切な情報など)を一時的又は永続的に記憶し、検索を容易にすることができる任意の構造(複数可)を表す。メモリ230は、ランダム・アクセス・メモリ、又は任意の他の適切な揮発性又は不揮発性の記憶装置を表すことができる。永続的なストレージ235は、読み出し専用メモリハードドライブフラッシュメモリ、又は光ディスクなど、データの長期記憶をサポートする1つ又は複数の構成要素又はデバイスを含むことができる。例えば、永続的なストレージ235は、データの1つ又は複数のデータベース、ボランティア・コンピューティング・グリッド内のセル用のクライアント・アプリケーション、ボランティア・コンピューティング・グリッド内のセルへのディスパッチを待つタスク、及び/又はボランティア・コンピューティング・グリッドからの処理結果などを記憶することができる。

0030

通信インターフェース220は、他のシステム又はデバイスとの通信をサポートする。例えば、通信インターフェース220は、ネットワーク101を介した通信を容易にするネットワーク・インターフェース・カード又は無線トランシーバを含むことができる。通信インターフェース220は、任意の適切な物理的又は無線通信リンクを介した通信をサポートすることができる。I/Oユニット225は、データの入出力を可能にする。例えば、I/Oユニット225は、キーボードマウスキーパッドタッチスクリーン、又は他の適切な入力デバイスを介したユーザ入力のための接続を提供し得る。I/Oユニット225は、ディスプレイプリンタ、又は他の適切な出力デバイスに出力を送信することもできる。

0031

図2はサーバ200の一例を示しているが、図2には様々な変更を加えることができる。例えば、図2の様々な構成要素は、組み合わせるか、さらに細分するか、又は省略することができ、特定のニーズに応じて付加的な構成要素を追加することができる。特定の例として、1つのシステムとして図示されているが、サーバ200は、遠隔に配置することができる複数のサーバシステムを含むことができる。別の例では、異なるサーバシステムが、本開示の様々な実施形態によるコンピューティング・タスクの協調処理用のプラットフォームを提供するために、処理リソース、ストレージ・リソース、及び/又は通信リソースの一部又は全部を提供することができる。別の例では、サーバ200は、ボランティア・コンピューティング・グリッドの一部であってもよい。例えば、ボランティア・コンピューティング・グリッド内の1つ又は複数のコンピューティング装置は、本明細書で説明するように、サーバ200の処理を個別に又は共同で実行するためのソフトウェアを含むことができる。

0032

図3は、本開示の実施形態によるクライアント装置300の一例を示す。図3に示すクライアント装置300の実施形態は、例示のためだけのものであり、図1のクライアント装置106〜114は、同じ構成又は同様の構成を有することができる。しかしながら、クライアント装置は多種多様な構成で提供され、図3は、本開示の範囲を電子デバイスの任意の特定の実装に限定しない。図3に示すように、クライアント装置300は、通信インターフェース(又は回路)305、プロセッサ(複数可)310、入出力(I/O)インターフェース315、入力325、ディスプレイ320、及びメモリ330を含む。メモリ330は、オペレーティング・システム(OS)332、及び1つ又は複数のクライアント・アプリケーション(複数可)334を含む。

0033

通信インターフェース(又は回路)305は、他のシステム又はデバイスとの通信をサポートする。例えば、通信インターフェース305は、ネットワーク101を介した通信を容易にするネットワーク・インターフェース・カード又は無線トランシーバを含むことができる。通信インターフェース305は、任意の適切な物理的又は無線の通信リンク(複数可)を介した通信をサポートすることができる。無線通信を利用する実施形態では、通信インターフェース305は、様々な無線通信プロトコル(例えば、Bluetooth(登録商標)、Wi-Fi、セルラLTE通信プロトコルなど)を使用して、1つ又は複数のアンテナを介して着信RF信号を受信することができる。

0034

プロセッサ(複数可)310は、1つ又は複数のプロセッサ又は他の処理装置を含むことができ、クライアント装置300の動作全体を制御するために、メモリ330に格納されたOS332を実行することができる。プロセッサ(複数可)310はまた、例えば、処理タスク又はコンピューティング・タスク、通信タスク又はネットワークタスク、及びボランティア・コンピューティング・グリッドの一部としてのストレージタスクなどのコンピューティング・タスクを実行するための、1つ又は複数のクライアント・アプリケーション用のプログラムコードなど、メモリ330に常駐するクライアント・アプリケーション334を実行することができる。クライアント・アプリケーション(複数可)334は、以下でより詳細に説明するように、機械学習アプリケーション、又はビデオゲームなどの対話型アプリケーション、又はユーザ入力を促すアプリケーションのための、プログラムコードを含むことができる。プロセッサ(複数可)310、通信インターフェース305、及び/又はメモリ330は、クライアント装置300のコンピューティング・リソースを構成する。プロセッサ310は、任意の適切な数及びタイプのプロセッサ又は他のデバイスを、任意の適切な構成で含むことができる。プロセッサ(複数可)310のタイプの例には、マイクロプロセッサ、マイクロコントローラ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ、フィールド・プログラマブル・ゲート・アレイ、特定用途向け集積回路、及びディスクリート回路が含まれる。

0035

プロセッサ(複数可)310は、実行中のプロセスの必要に応じて、メモリ330にデータを移動させたり、メモリ330からデータを移動させたりすることができる。プロセッサ(複数可)310はまた、I/Oインターフェース315に結合される。I/Oインターフェース315は、ラップトップ・コンピュータ及びハンドヘルド・コンピュータなどの他のデバイスに接続する能力をクライアント装置300に提供する。I/Oインターフェース315は、アクセサリとプロセッサ(複数可)310との間の通信経路を提供する。

0036

プロセッサ310は、入力325及びディスプレイ320にも結合される。クライアント装置300のオペレータは、入力325を使用して、データ及びインプットをクライアント装置300に入力することができる。例えば、入力325は、タッチスクリーン、ボタン、キーボード、トラックボール、マウス、スタイラス電子ペン、ビデオゲーム・コントローラ等であってもよい。ディスプレイ320は、液晶ディスプレイLEDディスプレイ、又はウェブサイトなどからテキスト及び/又は少なくとも限定されたグラフィックスレンダリングすることができる他のディスプレイであってもよい。メモリ330は、プロセッサ(複数可)310に結合される。メモリ330の一部は、ランダムアクセスメモリ(RAM)を含むことができ、メモリ330の別の部分は、フラッシュメモリ又は他の読み出し専用メモリ(ROM)を含むことができる。

0037

図3はクライアント装置300の一例を示しているが、図3には様々な変更を加えることができる。例えば、図3の様々な構成要素を組み合わせるか、さらに細分するか、又は省略することができ、特定のニーズに応じて付加的な構成要素を追加することができる。特定の例として、プロセッサ(複数可)310は、1つ又は複数の中央処理装置(CPU)及び1つ又は複数のグラフィックス処理装置(GPU)などの、複数のプロセッサに分割することができる。別の例では、ディスプレイ320は、例えば、ビデオゲーム・コンソール又はデスクトップ・コンピュータ等で、クライアント装置300の一部に外部接続されてもよいし、又は接続されなくてもよい。

0038

本開示の実施形態は、コンピューティング・リソースの消費者、プログラマ、研究者、及び開発者を、ボランティア・グリッド・コンピューティング・ネットワークのメンバーに結びつけ、コンピューティング・タスクを実行するためのコラボレーションを可能にするプラットフォームを提供する。本開示の実施形態は、その参加及び頻度が、信頼性のある効果的なボランティア・グリッド・コンピューティング・ネットワークにとっての課題であることを認識する。したがって、本開示の実施形態は、ボランティア・グリッド・コンピューティング・ネットワークのメンバーにインセンティブ及び関与を提供して、ネットワークサイズ可用性、及び信頼性を改善する。本開示の実施形態は、さらに、クラウドソースの研究又は市民科学の使用と、機械学習アプリケーションをすべて単一のプラットフォーム内で処理するための計算リソースの統合とを介したコラボレーションのためのインターフェースを提供する。

0039

様々な実施形態では、サーバ200に関連するクライアント装置300は、ゲームベースのボランティア・グリッド・コンピューティング・システムを形成する。一例では、コンピューティング・システムは、開発者がボランティア・コンピューティングを既存のゲームクライアントに容易に統合できるようにするプラグインなどのクライアント・アプリケーション又はその一部を使用して有効になる。ゲーム起動時に、クライアント・アプリケーション(例えば、ビデオゲーム・クライアントに関連するダイナミックリンクライブラリ(DLL))のマネージャは、ワークユニット(WU)の収集、WUの処理、記憶、及びWU処理結果のサーバ200への返送を含む分散コンピューティング・タスクを管理するクライアント装置300上の別個スレッド(複数可)を起動する。クライアント装置300上のスレッドは、サーバ200にプル要求(複数可)を発行する。サーバ200は、サーバ200を介して処理されている問題(複数可)に関連するデータのチャンク(例えば、WU)を、クライアント装置300に提供する。サーバ200は、また、データを分析するために使用されるアルゴリズムを提供することができる。データとアルゴリズムがクライアント装置300にダウンロードされた後で、スレッドはゲームと並行して実行され、データを分析することができる。

0040

この別個のスレッドのアプローチは、多くのゲーム、特にリソース集約的ではないゲームで機能する。しかしながら、幾つかのゲームは、クライアント装置300においてかなりのコンピューティング・リソースを必要とし、これは、ゲーム性能及びユーザ経験に影響を与えるボランティア・コンピューティング・スレッドにつながり得る。この問題を低減するために、クライアント・アプリケーションのマネージャは、クライアント装置300内で実行されるボランティア・コンピューティングのための優先度の低いスレッド(複数可)を動的に作成し、必要に応じてゲームがリソースを要求できるようにするが、ゲームがより低い処理リソースを必要とする時間(例えば、スタート画面中、メニュー中、ゲームが一時停止されているとき、ゲーム内ロビーマッチメイキングを待っている間など)も活用することを可能にする。

0041

他の例では、クライアント装置300が、クライアント装置300上で常に実行されているスタンドアローン起動アプリケーションを有することができる。起動アプリケーションは、ゲームプログラムなどの別個のクライアント・アプリケーション(複数可)334を起動するために使用することができる。次いで、ゲームプログラムは、起動アプリケーションに接続する。次いで、起動アプリケーションは、システム100に接続する。言い換えれば、クライアント・アプリケーション(複数可)334又はクライアント・アプリケーション(複数可)をシステム100に接続するゲームのマネージャは、クライアント・アプリケーション(複数可)334に統合されなくてもよい。例えば、ゲームプログラムは、クライアント装置300上の別のアプリケーションで実行されるマネージャに接続することができる。このように、1つの起動アプリケーションはクライアント装置300上に存在するが、マネージャをすべてのアプリケーションに個別に埋め込むのではなく、システム100内の多くの異なるアプリケーションに接続し、通信し、関与することができる。

0042

さらに、いくつかの実施形態では、コンピューティング・システム・プラグインは、ゲームクライアントがボランティア・コンピューティング・プロセスとインターフェースで接続するためのフック又はタイを含む。このインターフェースは、ボランティア・コンピューティング問題へのユーザ寄与などのデータへのアクセスを可能にすると共に、コンピューティング・リソースの消費者、開発者、又は研究者に対し、動的な人間コンピューティング又は市民科学の機会を利用する能力を提供する。本明細書で説明するように、様々な実施形態は、ユーザの貢献、クレジットの形態又は結果に基づいて動的に生成されたコンテンツの形態におけるより大きなゲームプレイ値、又はプレーヤがプレイを続け、自分のコンピューティング・リソース及び/又は市民科学的な貢献を共有し続けるための他のモチベーションに関するユーザフィードバックを可能にし、及び/又はユーザフィードバックを要求することによって、ボランティア・コンピューティング・プロセスにさらなる改善を提供する。一例では、このデータ共有により、ユーザは自分のスコア他人のスコアと比較し、研究の進捗状況とそれに対する自分の相対的な貢献度視覚化することができる。

0043

いくつかの実施形態では、ゲームクライアントに関連するDLLを介してボランティア・コンピューティング・スレッドを実行する利点が提供されるが、これはスレッドベースのアプローチが、さもなければ利用できないビデオゲーム・コンソールの処理能力へのアクセスを可能にするからである。他の実施形態では、クライアント装置上で実行される専用のボランティア・コンピューティング・アプリケーションが、実行時にデバイスごとにより多くの計算能力を提供し、市場の膨大な数のゲーマーを利用し、多数の付加的な計算能力のリソースを提供することができる。

0044

いくつかの実施形態では、専用のボランティア・コンピューティング・システム及びビデオゲームベースのボランティア・コンピューティング・システムは、共通のプラットフォームを共有することができ、それによって、いずれかの形態のボランティア・コンピューティングの貢献に対する報酬を、ビデオゲーム内を含む任意のタイプの利益のために利用することができる。以下でより詳細に説明するように、ボランティア・コンピューティングの管理は、サーバ102などの中央サーバを使用して実行される。これは、ウェブサイトやコンパニオン・アプリケーションなどのサポート要素をボランティア・コンピューティングに統合するための、開発者向けのインターフェースも提供する。次いで、開発者は、これらの補足サービスを使用してボランティア・コンピューティングの能力を高めたり、及び/又は、ユーザがボランティア・コンピューティング・データとインターフェースで接続することを可能にするオプションをユーザに提供できる。

0045

図4は、本開示の種々の実施形態による、コンピューティング・タスクの協調処理のためのプラットフォームを提供するためのプロセスを示す。例えば、図4に示すプロセスは、図2のサーバ200によって実施されるものとして説明される。このプロセスは、図1のサーバ102〜104のいずれによっても実施することができる。

0046

プロセスは、サーバ200が、コンピューティング・リソース(資源)の消費者のためのインターフェースを、コンピューティング・グリッドに提供することから始まる(ステップ405)。例えば、ステップ405において、サーバ200は、例えば、データプロセッサ、データベース、ネットワーク、プログラマ、研究者、及び/又は開発者などのコンピューティング・リソースの消費者のためのコンピュータシステムに、ネットワークを介して接続して、コンピューティング・リソースを必要とするプロジェクト又はタスクを受信することができる。多くのコンピューティング、研究、又は開発プロジェクトは、より高速なソリューション、又はソリューションに対するさらなる検証及び改善を提供するために、増加した量のコンピューティング・リソースから著しく恩恵を得ることができる。このステップの一部として、サーバ200又はおそらくゲーム開発者に関連付けられたサーバ(例えば、サーバ103)は、インターフェースを介して1つ又は複数のゲームを提供し、問題に対するソリューションを提供することができる。例えば、特定のタスクのゲーム化は、ユーザの関与を促進し、利用可能なコンピューティング・リソースの量を増加させる。いくつかの実施形態では、このビデオゲーム(又は1セットの複数のゲーム)は、実行されるタスク又は研究のタイプには無関係である。様々な実施形態において、ビデオゲームは、人間の脳の能力を活用して三次元パターンマッチング及び空間的推論を実行し、通常のブルートフォース機械学習アルゴリズムよりも迅速に問題を解決するのを助けるように開発される。

0047

次に、サーバ200は、1つ又は複数のクライアント・アプリケーションを提供する(ステップ410)。例えば、ステップ410において、サーバ200は、クライアント装置がボランティア・コンピューティング・グリッドの参加者となるように、クライアント装置(例えば、クライアント装置106〜114など)にソフトウェアを提供することができる。クライアント・アプリケーションは、少なくとも、クライアント装置がプロジェクト又はコンピューティング・タスクを要求し、受信する機能、及びプロジェクトの結果を報告する機能を提供する。例えば、クライアント・アプリケーションは、コンピューティング・タスクを要求する機械学習アプリケーションに関連するプログラムコード、機械学習アルゴリズムの少なくとも一部を処理するためのプログラムコード、又は、ユーザからの入力を利用するタスク用の対話型アプリケーションに関連するプログラムコードを含むことができる。

0048

1つ又は複数のクライアント装置に1つ又は複数のクライアント・アプリケーションを提供する際に、異なるクライアント装置に対して提供される1つ又は複数のクライアント・アプリケーション内のプログラムコードは、異なるものとすることができる。例えば、対話型アプリケーションを介してユーザ入力を要求するためのプログラムコードは、(例えば、より多くのユーザが対話する可能性が高い又は統計的に判断されるゲームデバイスやパーソナル電子デバイスなど、デバイスのタイプに基づいて)一部のクライアント装置に送信されてもよい。一方、機械学習アプリケーションを処理するためのプログラムコードは、他のデバイス(例えば、より多くの処理能力又は記憶能力を有すると判断されたデバイスや、従来のサーバを実行する電子デバイス等のより頻繁にオン状態又はアイドル状態である可能性が高い又は統計的に判断されるデバイスなど、コンピューティング・リソースの可用性が高いデバイス)に送信されてもよい。

0049

ステップ420に関してより詳細に説明されるように、クライアント・アプリケーションは、また、クライアント装置による参加を追跡し、評価し、奨励するための基準を含むことができる。このステップの一部として、サーバ200は、また、クライアント装置のユーザが、プレイして、又は、参加を促すために対話して、及び/又は、協力して本明細書で説明する問題を解決するために、ユーザ入力を必要とする1つ又は複数のゲーム又はプログラムなどの対話型アプリケーションをクライアント装置のユーザに提供することができる。

0050

いくつかの実施形態では、このステップの一部として、アプリケーションプロバイダは、ゲーム内、ビデオ内、音楽内、又はウェブサイト広告などの広告内で動作することができる。例えば、従来の広告に加えて、又は従来の広告の代わりに、エンドユーザは、クライアント装置300のコンピューティング・リソースを広告に寄付するか、又はクライアント装置300のコンピューティング・リソースを広告に利用させることによって、エンドユーザが視聴しているコンテンツに対し、寄付又は「支払い」をすることができる。いくつかの実施形態では、これらの広告は、バックグラウンドを実行することができ、又は、ユーザからの対話性及び/又はユーザへの割り込みを、ほとんど又は全く伴わずに表示することができる。他の実施形態では、これらの広告はインタラクティブであり、人間の直感に基づくパターンマッチング又は他の市民科学フィードバックを要求することができる。例えば、広告は、コンピュータと人間を識別するための(CAPTCHA)、完全に自動化されたパブリックチューリングテスト(public Turing test)などの対話型のボット検出技法から得られたユーザ入力結果を利用して、例えば、トレーニングデータを生成するためのパターンマッチングを支援する。

0051

その後、サーバ200は、コンピューティング・タスクをディスパッチして、管理する(ステップ415)。コンピューティング・タスクは、コンピューティング装置の処理リソース、コンピューティング・リソース、ストレージ・リソース、又はネットワーク・リソースなどのコンピューティング・リソースを利用するタスクである。例えば、このステップの一部として、コンピューティング・タスクは、例えば、対話型アプリケーションの一部として提示されるコンピューティング・タスク、マッチングタスク、又はパターン識別タスクなど、ユーザからの入力を必要とする1つ又は複数のタスクを含むことができる。コンピューティング・タスクは、また、機械学習アルゴリズムの処理用など、機械学習アプリケーションに関連するタスクを含むことができる。例えば、コンピューティング・タスクは、ボランティア・コンピューティング・グリッド上で実行されるクライアント・アプリケーションを介して提供される同じプラットフォーム内ですべて実行されるユーザ支援トレーニングデータを使用した機械学習アプリケーションを繰り返し更新するなど、ユーザから受け取った入力に基づいて機械学習アルゴリズムの少なくとも一部を反復的に処理することを含むことができる。いくつかの実施形態では、機械学習アルゴリズムの処理で使用されるユーザ入力が、例えば、ビデオゲームのゲームプレイ中に、対話型アプリケーションを介して要求され、受信される。さらに、ユーザ入力は、入力に基づいて機械学習アルゴリズムを処理するクライアント装置とは異なるクライアント装置から受信されてもよい。

0052

ステップ415の一部として、サーバ200は、ボランティア・コンピューティング・グリッドのメンバーである1つ又は複数のクライアント装置から要求を受信することができる。要求は単に、クライアント装置のリソースが利用可能であることを示すものであってもよい。例えば、クライアント装置はアイドル状態になり、その結果、プロセッサリソースが自由になることがある。別の例では、クライアント装置がネットワーク接続されているため、ストレージ・リソースをグリッドに提供することの一部として、データの読み取り及び書き込みに利用可能であってもよい。いくつかの実施形態では、ステップ410において、タスクが、例えば、ゲームの一部としてクライアント・アプリケーションと共に既に提供されていてもよい。いくつかの実施形態では、サーバ200は、並行して実行可能なタスクと、結果検証のために冗長なタスクとを提供することにより、タスクを管理する。

0053

いくつかの実施形態では、サーバ200は、ブロックチェーン技術を使用してコンピューティング・タスクをディスパッチし、管理することができる。ブロックチェーンは、暗号化を使用してリンクされ、保護されているレコード又はブロックのリストである。例えば、レコード又はブロックは、トランザクションデータ又はプログラムを含むことができる。これらの実施形態では、サーバ200は、完了されるべき様々なコンピューティング・タスクのレコードを、ブロックチェーンに追加することができる。クライアント装置(例えば、クライアント装置106〜114)は、これらのコンピューティング・タスクを、ブロックチェーンから受信又はプルすることができる。これらのコンピューティング・タスクには、ユーザ入力又は人間の直感を必要とするタスクなどのユーザタスクが含まれる。サーバ200(及び/又は、これらの実施形態では、ブロックチェーン技術において「マイナー」と呼ばれる他のコンピューティング装置)は、コンピューティング・タスクの結果を検証しようと試みることによって、コンピューティング・タスクを管理する。例えば、サーバ200(又は、マイナーのグループ)は、ブロックチェーンに追加される新しいレコードの形態で結果を受信し、タスクに関連する基準に基づいてレコードを検証する。例えば、タスクに関連する基準は、実行される処理、タイミング、量、及び/又はタスク実行の結果の品質を含む。サーバ200(又は、マイナーのグループ)は、タスクの完了のためのデータを示す又はそのデータを含むレコードに基づいて、そのレコードを検証してもよい。さらに、サーバ200(又は、マイナーのグループ)は、タイミング又は結果の品質に基づいてレコードを検証してもよい。例えば、最初に実行するもの、特定の時間の前に終了したもの、又はタスクを実行する他の装置の結果と一定のレベルで一致する結果を、検証することができる。受信したレコードに対する一定のレベルの一致に基づいて、サーバ200(又は、マイナーのグループ)は、次に、そのレコードをブロックチェーンに追加する。追加の一部として、レコードは、レコードが受信されたクライアント装置に、例えば、暗号通貨形式など、何らかの形式の価値を伝達することができる。

0054

様々な実施形態では、サーバ200は、ローカルプロセス及びクライアント装置間のアクセスを調整するマネージャノード又はマスターノードである。これらの例では、クライアント装置は、様々なクライアント装置を単一のネットワークとしてサーバ200に提示するダイナミック・ドメインネーム・サーバ(DNS)システムを介してアクセス可能である。また、全体を通して説明したように、グリッド・コンピューティング・システムを介して提供されるコンピューティング・リソースは、処理リソースに限定されない。様々な実施形態において、サーバ200は、グリッド・コンピューティング・システムのクライアント装置を介して、分散ファイル・システムを実装する。例えば、サーバ200は、ファイルを所定のサイズ(たとえば、16MB、32MB、又は64MB)のチャンクに分割し、冗長性のために複製することができるチャンクをデバイス全体に分配し、アクセスするアプリケーションに共有スペースを単一のフォルダとして提示する。

0055

次に、サーバ200は、参加インセンティブを提供する(ステップ420)。例えば、ステップ420において、サーバ200は、参加を奨励するための任意のタイプのインセンティブを提供することができる。インセンティブには、その貢献が重要なプロジェクトに資金を提供しているという情報、デジタル通貨、及びメディアコンテンツ、例えば、文学、画像、音楽、ビデオ、ビデオゲーム用の仮想オブジェクト、ビデオゲーム等が含まれるが、これらに限定されない。一例では、サーバ200は、参加の量及び/又は実行されたタスクの品質を追跡し、比例デジタル通貨、メディアコンテンツ、又はビデオゲーム用の仮想オブジェクトを提供することができる。例えば、参加は、継続時間、1秒当たり浮動小数点演算FLOPS)(又は、より一般的にはギガ-FLOPS(GFLOPS))、記憶時間量などのメトリックを介して追跡することができる。サーバ200は、例えば、より高度なソリューションをもたらすゲームプレイ中に達成されたスコアに基づいて、質的な参加を格付けすることもできる。このステップの一部として、サーバ200は、クライアント装置のユーザのアカウントにデジタル通貨(例えば、ビットコインドル等)を入金し、ユーザのゲームプレイ体験を改善する追加の又はより良い仮想オブジェクトをビデオゲームに提供し、継続的なゲームプレイを可能にし、又は追加のビデオゲームのダウンロード/オンラインプレイを可能にすることができる。

0056

様々な実施形態では、サーバ200は、メディアコンテンツを使用して参加を促す。例えば、音楽又はビデオなどの有料ストリーミングサービスを使用する一環として、ユーザがある程度のコンピューティング・リソースをグリッドに提供する場合、ストリーミングサービスの費用は補助されるか、又はカバーされる。音楽やビデオなどのほとんどのストリーミングサービスは、主に、デバイスのバッファリング及びネットワーク・リソースを使用する。例えば、オンライン・ビデオ・チャネルの視聴中又は音楽のストリーミング中に、デバイスは、ボランティア・コンピューティング・グリッドによる使用に利用可能な、未使用の処理リソース及び/又は長期的なストレージ・リソースを有する可能性が高い。補助された又は無料のストリーミング・コンテンツへの参加を奨励し、コンテンツへの参加中にエンドユーザを楽しませることによって、本開示の実施形態は、ボランティア・コンピューティング・グリッドのサイズ及び可用性を増大させることができる。様々な実施形態では、インセンティブがエンドユーザレベル又はコンテンツ・プロバイダレベルで提供されてもよい。例えば、オンライン・ビデオゲーム・プロバイダ又はメディア・コンテンツ・プロバイダは、エンドユーザのデバイスがボランティア・コンピューティング・グリッドの一部となることを可能にするために、ステップ400において提供されるクライアント・アプリケーションの少なくとも一部を、それらのコンテンツプレーヤ又はビデオゲームに含めることで補償され得る。次いで、これらのゲーム/メディアプロバイダは、エンドユーザのデバイスがボランティア・コンピューティング・グリッドに参加する結果として、エンドユーザに低コストのコンテンツ及びゲームを提供することができる。

0057

その後、サーバ200は、タスクの結果を受信する(ステップ425)。例えば、ステップ425において、サーバ200は、コンピューティング・タスクが完了したとき、及び/又はネットワーク・リソースが利用可能になったときに、クライアント装置からWUの結果を受信することができる。このステップの一部として、サーバ200は、コンピューティング・タスクの結果の処理及び検証を実行することができる。例えば、特定のメトリック又はスコアを達成した結果のみが、研究者又は開発者による使用のためにフィルタリングされ得る。別の例では、サーバ200は、特定の数の冗長なタスクの結果を比較して、特定のクライアント装置からの結果が信頼できるかどうかを検証することができる。

0058

次に、サーバ200は、タスクの結果を返す(ステップ430)。例えば、ステップ430で、サーバ200は、ステップ405でデータに提供されたものと同じインターフェースを使用して、結果をコンピューティング・リソースの消費者(例えば、サーバ104)に提供して、研究者及び/又は開発者の問題を解決したり、又はソリューションを検証することができる。このようにして、本開示の実施形態は、グリッド・コンピューティングを使用した共同の研究開発のためのプラットフォームを実装し、提供する。

0059

図5は、本開示の様々な実施形態による、ボランティア・コンピューティング・グリッドに参加するためのプロセスを示す。例えば、図5に図示するプロセスは、図3のクライアント装置300によって実施されるものとして説明される。このプロセスは、図1のクライアント装置106〜114のいずれによっても実施することができる。

0060

プロセスは、クライアント装置300が、1つ又は複数のクライアント・アプリケーションを受信することから始まる(ステップ505)。例えば、いくつかの実施形態では、ステップ505において、クライアント装置300は、ボランティア・コンピューティング・グリッドに参加するための専用アプリケーションを受信することができる。クライアント装置300はまた、ビデオゲームなどの対話型アプリケーション、または、ゲームプレイ又はメディアストリーミング中のボランティア・コンピューティング・グリッド参加用のプラグイン又は他のコンポーネント内に含まれるメディアストリーミング・アプリケーションを受信することができる。クライアント・アプリケーションは、クライアント装置300による処理のための機械学習アプリケーション用のプログラムコードを含むことができる。

0061

次に、クライアント装置300は、タスクを受信し、処理する(ステップ510)。例えば、ステップ510において、クライアント装置300は、受信したアプリケーションがクライアント装置300上で実行されるときに、コンピューティング・タスクを要求することができる。いくつかの実施形態では、タスクは、機械学習アプリケーションのために研究されているより大きな問題の一部であり、及び/又は、例えば上述したゲーム対話を介した市民科学コラボレーションの機会を含むことができる。次いで、クライアント装置300は、例えば、検証と、研究者及び/又は開発者への提供とのために、タスクの結果をサーバ200に返す(ステップ515)。

0062

様々な実施形態では、ステップ510の一部として又はステップ510について、クライアント装置300は、対話型アプリケーション用のプログラムコードを実行して、ユーザからの入力を要求及び受信するためのユーザ・インターフェースを生成する。例えば、対話型アプリケーションは、画像又は一連の画像中のオブジェクト(複数可)を識別するためにユーザ入力を要求するプログラムであってもよく、又は、市民科学入力を提供するためにユーザ入力を要求するゲームであってもよい。クライアント装置300は、受信したコンピューティング・タスクの結果としてユーザ入力を受信して処理する。

0063

追加的または代替的に、クライアント装置300は、機械学習アプリケーション用のプログラムコードを処理することができる。例えば、クライアント装置300は、例えば、機械学習アルゴリズムを繰り返し処理し、処理結果を記憶し、及び/又は機械学習アルゴリズム処理結果を検証することによって、コンピューティング・リソースを機械学習アプリケーションに更に提供することができる。別の例では、クライアント装置300は、機械学習アプリケーションに関連して、クライアント装置300又はコンピューティング・グリッド内の他のクライアント装置(複数可)によって受信されたユーザ入力の結果を繰り返し受信し処理して、機械学習アルゴリズムを反復的に改善することができる。例えば、クライアント装置300は、対話型アプリケーションからのパターン認識入力又はトレーニングデータ入力を利用して、ボランティア・コンピューティング・グリッドによって実行されるタスクの一部として、単一のプラットフォーム内のすべての機械学習アプリケーションを改善することができる。いくつかの実施形態では、クライアント装置300によって実行されるタスクは、コンピューティング・グリッド内の別のクライアント装置から受信することができる。例えば、クライアント装置300によって実行される機械学習タスク(複数可)は、機械学習アルゴリズムを文字通り改善するためにユーザ入力結果を提供する他のクライアント装置(複数可)から受信されてもよく、その逆も同様である。別の例では、クライアント装置300によって実行される対話型アプリケーションタスク(複数可)は、機械学習アルゴリズムの文字通りの改善において、クライアント装置300から受信したユーザ入力結果を処理している他のクライアント装置(複数可)から受信されてもよく、その逆もまた同様である。

0064

様々な実施形態では、ステップ510及び515の一部として、又はステップ510及び515について、クライアント装置300は、ブロックチェーンから計算のためのタスクを受信し(例えば、上述のように)、タスクを実行し、タスクの完了としてブロックチェーンにポストされるレコードを、結果についてのデータとして送信することができる。例えば、これらの実施形態では、実行されるタスクは、コンピューティング・タスク又はパターンマッチングタスクなど、ユーザからの入力を必要とするタスクを含み、ブロックチェーンの一部である。次いで、クライアント装置300は、電子デバイスのユーザからの入力を要求及び受信することを含むタスクを実行し、タスクの完了を示すために必要なデータを生成することができる。例えば、このデータは、生成されたトレーニングデータ又はパターン認識を示すデータを含むことができる。次いで、クライアント装置300は、データ又は提案されたブロックチェーンのレコードをサーバ102(例えば、マイナー)に送信して、ブロックチェーンにポストし、タスクの完了のために独立して検証されたクレジットを受信する。

0065

その後、クライアント装置300は、参加インセンティブを提供する(ステップ520)。例えば、ステップ520において、クライアント装置300は、エンドユーザに対して、ボランティア・コンピューティングへの参加を奨励するインセンティブを提供することができる。インセンティブの量及び/又は質は、提供されるボランティア・コンピューティングの貢献の量及び/又は質に基づくことができる。インセンティブ及び金額は、タスク完了時にクライアント装置において自律的に、又はタスクの結果の報告及び検証後にサーバ200を介して決定され得る。参加インセンティブは、例えば、デジタル通貨、暗号通貨、メディアコンテンツ、ビデオゲーム用の仮想オブジェクト、ビデオゲーム等のような、アプリケーションに関連するか否かにかかわらず、任意の有価アイテムとすることができる。いくつかの実施形態では、インセンティブが開発者レベルで適用されてもよく、それによって、エンドユーザは補助された又は無料のメディアコンテンツ、ゲーム、ゲーム内のレベル、ゲーム内の仮想オブジェクトなどによってインセンティブを得ることができる。したがって、クライアント装置による実際のタスク完了の前、最中、又は後に、エンドユーザのインセンティブを提供することができる。

0066

図4及び図5はそれぞれ、グリッド・コンピューティングを使用し、ボランティア・コンピューティング・グリッドに参加する共同の研究開発のためのプラットフォームを提供するためのプロセスの例を示すが、様々な変更を図4及び図5に行うことができる。例えば、一連のステップとして示されているが、各図の様々なステップは、オーバーラップするか、並列に起こるか、異なる順序で起こるか、又は複数回起こることができる。別の例では、ステップは省略されてもよく、又は他のステップと置き換えられてもよい。

0067

特許文書全体を通して使用される特定の単語及び語句の定義を記載することが有利であり得る。用語「結合する(couple)」及びその派生語は、2つ以上の要素が互いに物理的に接触しているか否かにかかわらず、それらの要素間の任意の直接的又は間接的な通信を指す。用語「送信」、「受信」、及び「通信」、ならびにそれらの派生語は、直接通信及び間接通信の両方を包含する。用語「含む(include)」及び「含む(comprise)」、ならびにそれらの派生語は、限定されない包含を意味する。「又は」という用語は包括的であり、及び/又はを意味する。「関連する(associated with)」という語句、ならびにその派生語は、含む(include)、〜に含まれる(be included within)、〜と相互接続する(interconnect with)、含む(containe)、〜に含まれる (be contained within)、〜と接続する(connect to or with)、〜と結合する(couple to or with)、〜と通信可能である(be communicable with)、〜と協働する(cooperate with)、差し挟む(interleave)、並べる(juxtapose)、〜に最も近い(be proximate to)、〜に決まっている(be bound to or with)、有する(have)、〜という性質を有する(have a property of)、〜と関係を有する(have a relationship to or with)等を意味する。「そのよう(such as)」という語句は、用語の間で使用される場合、後に列挙される用語が先に列挙される用語の例であり、限定ではないことを意味する。「のうちの少なくとも1つ(at least one of)」という語句は、アイテムのリストと共に使用される場合、リストされたアイテムのうちの1つ又は複数の様々な組合せが使用され得ることを意味し、リスト内の1つのアイテムのみが必要とされ得る。例えば、「A、B、及びCのうちの少なくとも1つ」は、以下の組み合わせのいずれかを含む。A、B、C、A及びB、A及びC、B及びC、ならびにA及びB及びC。

0068

さらに、本明細書で説明される様々な機能は、1つ又は複数のコンピュータプログラムによって実装又はサポートされることができ、その各々は、コンピュータ可読プログラムコードから形成され、コンピュータ可読媒体で実施される。「アプリケーション」及び「プログラム」という用語は、1つ又は複数のコンピュータプログラム、ソフトウェアコンポーネント命令セットプロシージャ関数、オブジェクト、クラス、インスタンス、関連データ、又は適切なコンピュータ可読プログラムコードでの実装に適合されたそれらの一部分を指す。「コンピュータ可読プログラムコード」という語句は、ソースコードオブジェクトコード、及び実行可能コードを含む任意のタイプのコンピュータコードを含む。「コンピュータ可読媒体」という語句は、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ハードディスクドライブコンパクト・ディスク(CD)、デジタル・ビデオ・ディスク(DVD)、又は任意の他のタイプのメモリなど、コンピュータによってアクセスすることができる任意のタイプの媒体を含む。「非一時的である」コンピュータ可読媒体は、一時的な電気信号又は他の信号を伝送する有線、無線、光、又は他の通信リンクを除外する。非一時的なコンピュータ可読媒体は書き換え可能な光ディスク又は消去可能なメモリデバイスのような、データを永久的に記憶することができる媒体と、データを記憶し、後に上書きすることができる媒体とを含む。

0069

他の特定の語句の定義は、本特許文書全体を通して提供される。当業者はほとんどではないにしても多くの場合、そのような定義はそのような定義された単語及び句の以前の使用ならびに将来の使用に適用されることを理解すべきである。

0070

本開示は例示的な実施形態を用いて説明されてきたが、当業者には様々な変更及び修正示唆され得る。本開示は、添付の特許請求の範囲内にあるような変更及び修正を包含することが意図される。

0071

一実施形態は、コンピューティング・タスクを処理するための方法を提供する。この方法は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーションを複数のクライアント装置に送信することを含む。プログラムコードは複数のクライアント装置のうちの1つ又は複数のプロセッサによって実行されると、1つ又は複数のクライアント装置に、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求し、要求された入力を受信し、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理し、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。この方法はさらに、受信された入力の結果と、コンピューティング・タスクを処理するための機械学習アプリケーションの少なくとも一部の処理とに関連するデータを受信し、処理することを含む。

0072

別の実施形態は、コンピューティング・タスクを処理するためのシステムを提供する。システムは、通信インターフェースと、通信インターフェースに動作可能に接続されたプロセッサとを含む。通信インターフェースは、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーションを複数のクライアント装置に送信するように構成される。プログラムコードは複数のクライアント・装置のうちの1つ又は複数のプロセッサによって実行されると、1つ又は複数のクライアント・装置に、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求し、要求された入力を受信し、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理し、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。通信インターフェースは、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを受信するようにさらに構成される。プロセッサはコンピューティング・タスクを処理するために、受信された入力の結果と、機械学習アプリケーションの少なくとも一部の処理とに関連するデータを処理するように構成される。

0073

別の実施形態は、非一時的なコンピュータ可読媒体を提供する。非一時的なコンピュータ可読媒体は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む。プログラムコードは、電子デバイスのプロセッサによって実行されると、電子デバイスに、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、電子デバイスのユーザからの入力を要求し、要求された入力を受信し、電子デバイスのコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理し、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。

0074

上記の例及び実施形態のいずれにおいても、複数のクライアント装置は、ボランティア・コンピューティング・グリッドを形成し、機械学習アプリケーションの少なくとも一部の処理は、ボランティア・コンピューティング・グリッド内のクライアント装置のうちの少なくとも1つによって受信された受信入力に少なくとも部分的に基づいて実行される。

0075

上記の例及び実施形態のいずれにおいても、1つ又は複数のクライアント装置のそれぞれから受信された結果に関連するデータに基づいて参加インセンティブを提供することが含まれ得る。

0076

上記の例及び実施形態のいずれにおいても、1つのクライアント装置が1つ又は複数のクライアント・アプリケーションを実行しているときに、複数のクライアント装置のうちの1つに少なくとも補助されたメディアコンテンツが提供されることを可能にすることが含まれ得る。

0077

上記の例及び実施形態のいずれにおいても、複数のクライアント装置を介した完了のためのタスクをブロックチェーンに追加し、完了のために1つ又は複数のクライアント装置のユーザからの入力を必要とするタスクを含めることができる。結果に関連するデータを受信し、処理することは、1つ又は複数のクライアント装置から、タスクの完了としてブロックチェーンにポストされるレコードを受信することと、タスクに関連する基準に基づいて受信したレコードを検証することと、検証されたレコードをブロックチェーンに追加することとを含む。

0078

上記の例及び実施形態のいずれかでは、受信したレコードを検証することはタスクに関連する基準に基づいて、レコードがタスクの完了を示すかどうかを判定することと、タスクの完了を示すレコードに応答してレコードを検証することとを含む。

0079

上記の例及び実施形態のいずれにおいても、システムはクライアント装置のうちの1つであってもよく、方法はクライアント装置のうちの1つによって実行されてもよい。

0080

上記の例及び実施形態のいずれにおいても、電子デバイスは、ボランティア・コンピューティング・グリッドを形成する複数のクライアント装置のうちの1つであり、機械学習アプリケーションの少なくとも一部の処理は、ボランティア・コンピューティング・グリッド内のクライアント装置のうちの少なくとも1つによって受信された受信入力に少なくとも部分的に基づいて実行される。

0081

上記の例及び実施形態のいずれにおいても、電子デバイスは、結果に関連するデータに基づいて参加インセンティブを受信する。

0082

上記の例及び実施形態のいずれにおいても、電子デバイスは、電子デバイスが対話型アプリケーション又は機械学習アプリケーションのうちの少なくとも1つに関連するプログラムコードを処理しているときに、少なくとも補助されたメディアコンテンツを受信する。

0083

上記の例及び実施形態のいずれにおいても、電子デバイスは、完了のために電子デバイスのユーザからの入力を必要とする完了のためのタスクをブロックチェーンから受信し、電子デバイスのユーザからの入力を要求及び受信することを含むタスクを実行し、結果に関連するデータにおいて、タスクの完了としてブロックチェーンにポストされるレコードを送信する。

0084

本出願における説明のいずれも、任意の特定の要素、ステップ、又は機能が、特許請求の範囲に含まれなければならない本質的な要素であることを暗示するものとして解釈されるべきではない。特許された主題の範囲は、特許請求の範囲によってのみ定義される。さらに、特許請求の範囲のいずれも、「のための手段(means for)」という正確な単語の後にパーティクルが続かない限り、35 U.S.C§112(f)を呼び出すようには意図されていない。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ