JP7212266B2 - タスクを共同処理するためのプラットフォーム - Google Patents

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

Info

Publication number
JP7212266B2
JP7212266B2 JP2019568252A JP2019568252A JP7212266B2 JP 7212266 B2 JP7212266 B2 JP 7212266B2 JP 2019568252 A JP2019568252 A JP 2019568252A JP 2019568252 A JP2019568252 A JP 2019568252A JP 7212266 B2 JP7212266 B2 JP 7212266B2
Authority
JP
Japan
Prior art keywords
machine learning
client devices
computing
input
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019568252A
Other languages
English (en)
Other versions
JP2020522364A (ja
Inventor
コーリー、クラーク
Original Assignee
バランスド メディア テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by バランスド メディア テクノロジー エルエルシー filed Critical バランスド メディア テクノロジー エルエルシー
Publication of JP2020522364A publication Critical patent/JP2020522364A/ja
Application granted granted Critical
Publication of JP7212266B2 publication Critical patent/JP7212266B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Description

関連出願及び優先権の主張への相互参照
本出願は、2017年6月5日に出願された米国仮特許出願第62/515,398号の優先権を主張する。上記特許文献の内容は、参照により本明細書に組み込まれる。
本開示は一般に、ボランティア・グリッド・コンピューティング・システムに関する。より具体的には、本開示はコンピューティング・タスクの協調処理のためのプラットフォームに関する。
大規模なデータセットのクラウドベースの計算処理及びデータ処理に対する需要が高まるにつれて、コンピュータ・リソースに対する需要も高まる。グリッド・コンピューティング又は分散コンピューティングは、大きなデータセットを処理するために使用することができる膨大なコンピューティング・パワーを生成するためのソリューションである。グリッド・コンピューティング又は分散コンピューティングは、複数のロケーション(すなわち、異なる遠隔に位置するコンピューティング装置)からのコンピュータ・リソースの集合を利用して、関連するタスクを実行するコンピューティングの一種である。ボランティア・コンピューティングは、コンピュータの所有者又はユーザが自分のコンピューティング・リソースを1つ又は複数のプロジェクトに寄付するグリッド・コンピューティングの一種である。多くのボランティア・コンピューティング・システムは、ボランティアのコンピュータ上のクライアント・プログラムがタスクを要求し処理し、そうでなければコンピュータはアイドル状態になる、プル・ベースのシステムを使用する。
ボランティア・コンピューティングは、マイクロサービスを使用したり、プロジェクトをワークユニットと呼ばれる小さなチャンクに分割する並列問題を解決して、ボランティア・クライアントを実行しているマシンに配布するための効果的なツールである。データ処理には複数のクライアントが使用されるため、通常、プロセスから最大限の価値を引き出すには、データとアルゴリズムを簡単に並列化できる必要がある。ボランティア・コンピューティング・システムのリソースは、オンサイトの専用リソースを購入して保守したり、クラウドベースのデータ処理サービスを調達したりする場合に比べて、データ処理のコストを大幅に削減できる。
本開示の実施形態は、コンピューティング・タスクの協調処理のためのプラットフォームを提供する。
一実施形態では、コンピューティング・タスクを処理するための方法が提供される。この方法は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーションを複数のクライアント装置に送信することを含む。プログラムコードは、複数のクライアント装置のうちの1つ又は複数のプロセッサによって実行されると、1つ又は複数のクライアント装置に、対話型アプリケーション用のユーザ・インターフェースを生成させ、生成された対話型アプリケーション用のユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求させ、要求された入力を受信させ、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。この方法は、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを受信して処理して、コンピューティング・タスクを処理することをさらに含む。
別の実施形態では、コンピューティング・タスクを処理するためのシステムが提供される。システムは、通信インターフェースと、通信インターフェースに動作可能に接続されたプロセッサとを含む。通信インターフェースは、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーションを複数のクライアント装置に送信するように構成される。プログラムコードは、複数のクライアント装置のうちの1つ又は複数のプロセッサによって実行されると、1つ又は複数のクライアント装置に、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求させ、要求された入力を受信させ、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。通信インターフェースは、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを受信するようにさらに構成される。プロセッサは、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを処理して、コンピューティング・タスクを処理するように構成される。
別の実施形態では、非一時的なコンピュータ可読媒体が提供される。非一時的なコンピュータ可読媒体は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む。プログラムコードは電子デバイスのプロセッサによって実行されると、電子デバイスに、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、電子デバイスのユーザからの入力を要求させ、要求された入力を受信させ、電子デバイスのコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理させ、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。
他の技術的特徴は、以下の図面、説明、及び特許請求の範囲から当業者には容易に明らかであろう。
本開示及びその利点をより完全に理解するために、以下の説明を添付の図面と併せて参照する。添付の図面では、同様の参照番号は同様の部分を表す:
図1は、本開示の様々な実施形態が実装され得る例示的なネットワーク化されたシステムを示す;
図2は、本開示の様々な実施形態が実装され得るサーバの一例を示す;
図3は、本開示の様々な実施形態が実装され得るクライアント装置の一例を示す;
図4は、本開示の様々な実施形態による、コンピューティング・タスクの協調処理のためのプラットフォームを提供するためのプロセスのフローチャートを示す。
図5は、本開示の様々な実施形態による、ボランティア・コンピューティング・グリッドに参加するためのプロセスのフローチャートを示す。
詳細な説明
以下で論じる図1~図5、及び本特許文献における本開示の原理を説明するために使用される様々な実施形態は、例示のためだけのものであり、本開示の範囲を限定するものと決して解釈されるべきではない。当業者は、本開示の原理が任意の適切に構成されたシステム又はデバイスにおいて実装され得ることを理解するのであろう。
本開示の実施形態は、それらの証明された価値にもかかわらず、ボランティア・コンピューティング・グリッドが信頼性の低さを含み、アクティブ状態なままのユーザ基盤に依存しているために、技術的問題を有していることを認識する。本開示の実施形態は、ユーザが自分の処理能力を共有するようにいかにインセンティブを与えるかが、ボランティア・コンピューティング・グリッドの主要な課題であることを認識する。本開示の実施形態は、ビデオゲームのような対話型アプリケーションを提供して、大規模な科学的問題又はコンピューティング問題に対する、コンピューティング・デバイス及び問題解決スキルの両方について、大勢の視聴者と関わる。
本開示の実施形態は、ボランティア・コンピューティング・グリッド内のデバイスによるコンピューティング・リソースの寄付が、ボランティア・コンピューティング・グリッドが利用可能なコンピューティング・タスク処理の完全なポテンシャルを利用していないという技術的問題をさらに認識する。本開示の実施形態は、機械学習アプリケーション用のデータを生成するための対話型アプリケーションを提供し、利用する。これらの対話型アプリケーションは、ユーザに対しては直接的に、又はコミュニティの個人又は組織あるいはコミュニティ全体に対しては間接的に、フィードバック、報酬、アクセス、メディアコンテンツ、又はエンターテイメントを介した入力又は対話へのインセンティブをユーザ又はコミュニティに与える。例えば、これらの対話型アプリケーションには、ビデオゲーム、メディアアプリケーション、又はユーザ入力や対話を奨励または利用するその他のアプリケーションが含まれる。本明細書で使用されるように、機械学習は、入力を使用してモデルを構築して、タスクの処理を反復的かつ漸進的に改善するための統計的技法の使用である。本明細書で使用されるように、例示的な機械学習アプリケーションには、データ科学、分析、人工知能(AI)、及びデータマイニング・アプリケーションが含まれるが、これらには限定されない。例えば、ビデオゲームは、ディープ・ニューラル・ネットワークなどの機械学習アルゴリズムのトレーニングデータを生成するために適用され、教師付き学習などの決定を評価するために適用され、ソリューションに突然変異を与えるために適用され、及び/又は人間の直感によって提供または支援されるその他の付加的なヒューリスティック・プロセスのために適用される。本開示の実施形態は、また、ユーザがビデオゲームをプレイしている間、又はアイドル時間中に、コンピューティング・リソース(例えば、処理能力、記憶能力、及びネットワーク接続)を利用することにより、ビデオゲームを利用してボランティア・コンピューティングを行う機会を提供する。例えば、コンピューティング・リソースは、バックグラウンドで実行されているアプリケーションで利用されてユーザに更新を提供したり、コミュニティ等への接続を維持したりする。そして、アイドル状態のコンピューティング・リソースを利用している間はすべて、利用され得る。ボランティア・コンピューティングは、分散コンピューティング環境に参加している多数のゲームデバイスを介して、利用可能な大量のコンピューティング・パワーにより、大規模な処理とアルゴリズム速度の向上を提供する。
したがって、本開示の実施形態は、コンピューティング・タスクの協調処理のためのプラットフォームを介して技術的ソリューションを提供する。様々な実施形態は、機械学習アプリケーションのための魅力的なエンターテイメントに統合されたボランティア・グリッド・コンピューティングを利用することによって、人間の知覚及び構造化されていない問題解決スキルを生のコンピューティング・パワーと組み合わせるクラウド・コンピューティング・プラットフォームを提供する。ウェブブラウザ、ゲーム、又はアプリケーションを実行する任意のWi-Fi対応デバイスは、分散コンピューティング環境の一部になる。本開示の実施形態は、また、プログラマ、研究者、及び開発者が接続されたデバイスを利用してデータを分類、検証、検索、および処理するのを支援するための汎用インターフェースを提供する。
本開示の実施形態は、また、ビデオゲームなどの対話型エンターテイメントを利用して、人々を関与させてオンラインに保ち、コンピューティング・リソースを利用する時間を増やして、アイドル状態及びアクティブ状態のコンピューティング時間の両方を活用する。対話型エンターテイメントは、コンテンツに積極的に関与する人を含む。その結果、本開示の実施形態は、クラウドソーシング技術を利用して機械学習を改善する機会を提供する。本開示の実施形態は、従来型のクラウド・コンピューティングに関連するインフラストラクチャや費用なしで、マシンと人間とが対話してソリューションをより速く見つける新しいタイプのクラウド・ネットワークを可能にする。本開示の実施形態は、また、ゲームコミュニティなどの大規模なオンラインコミュニティに対し、より良い世界を創造するのに役立つ重要な問題を処理するのを支援するために、すでにエンターテイメントに費やしている時間を使用するようにモチベーションを与え、権限を与えることを提供する。
図1は、本開示の様々な実施形態が実装され得る、例示的なネットワーク化されたシステム100を示す。図1に示されるネットワーク化されたシステム100の実施形態は、単に例示のためのものである。本開示の範囲から逸脱することなく、ネットワーク化されたシステム100の他の実施形態を使用することができる。
図1に示すように、システム100は、システム100内の種々の構成要素間の通信を容易にするネットワーク101を含む。例えば、ネットワーク101は、ネットワークアドレス間でインターネットプロトコル(IP)パケット又は他の情報を通信する。ネットワーク101は、1つ又は複数のローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、仮想プライベート・ネットワーク(VPN)、インターネットなどのグローバル・ネットワークの全部又は一部、又は1つ又は複数の位置にある、1つ又は複数の任意の他の通信システムを含むことができる。
ネットワーク101は、種々のサーバ102~104と、種々のクライアント装置106~114との間の通信を容易にする。サーバ102~104の各々は、1つ又は複数のクライアント装置106~114のためにソフトウェアを含むコンピューティング・サービスを提供することができる、任意の適切な電子コンピューティング装置又は処理装置とすることができる。サーバ102~104の各々は例えば、1つ又は複数の処理装置、命令及びデータを記憶する1つ又は複数のメモリ、及びネットワーク101を介した通信を容易にする1つ又は複数のネットワーク・インターフェースを含むことができる。例えば、以下でより詳細に説明するように、サーバ102は、クライアント装置106~114を使用してボランティア・グリッド・コンピューティングを調整することによって、グリッド・コンピューティングを使用する協調コンピューティング、研究、又は開発のためのプラットフォームを提供又は管理することができる。サーバ103は、以下でより詳細に説明するように、クラウドソーシング技術を利用して機械学習アルゴリズムを改善するソフトウェア又はゲーム開発に分類されたサーバとすることができる。サーバ104は、研究者、開発者、又はプラットフォームを使用して処理される必要があるプロジェクト又はタスクを有する他のグリッド・コンピューティングの消費者に関連付けられたサーバとすることができる。
各クライアント装置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は、コンピューティング・グリッドの個々のセルであると考えることができる。さらに、個々のセルは、集中型サーバの有無にかかわらず、例えば、ピアツーピア、アドホック、及び/又はメッシュベースのネットワークを使用して、互いに又はサーバと直接的又は間接的に通信することができる。
様々な実施形態では、クライアント装置106~114に関連するサーバ(例えば、サーバ102)は、コンピュータ・タスクを処理するためのコンピューティング・グリッドを形成する。様々な実施形態では、サーバ102は、コンピューティング・グリッドのタスク及びセルの、調整、提供、及び追跡のためのカスタムコードを管理する。他の実施形態では、サーバ102が、コンピューティング・グリッド内のセルを接続する仮想プライベート・ネットワーク(VPU)を管理する。これらの実施形態では、市販のソフトウェアをコンピューティング・グリッドによって実行して、コンピューティング・タスクを実行することができる。
図1はネットワーク化されたシステム100の一例を示しているが、図1には様々な変更を加えることができる。例えば、システム100は任意の適切な構成で任意の数の各構成要素を含むことができ、サーバ102~104及びクライアント装置106~114のそれぞれは、システム100の一部である任意の数のサーバ及び/又はクライアント装置を表すことができる。一般に、コンピューティング及び通信システムは多種多様な構成になり、図1は、本開示の範囲を任意の特定の構成に限定しない。図1はこの特許文献に開示されている様々な特徴を使用することができる1つの動作環境を示しているが、これらの特徴は任意の他の適切なシステムで使用することができる。
図2及び図3は、本開示の様々な実施形態による、ネットワーク化されたシステムにおける例示的なコンピューティング装置を示す。特に、図2がサーバ200の一例を示し、図3はクライアント装置300の一例を示す。この具体的な例では、サーバ200が図1のサーバ102~104のうちの任意の1つを表し、クライアント装置300は図1のクライアント装置106~114のうちの1つ又は複数を表すことができる。
図2に示すように、サーバ200は、バスシステム205を含む。バスシステム205は、プロセッサ(複数可)210、記憶装置215、通信インターフェース(又は回路)220、及び入出力(I/O)ユニット225の間の通信をサポートする。プロセッサ210は、メモリ230にロードされ得る命令を実行する。プロセッサ210は、任意の適切な数及びタイプのプロセッサ又は他のデバイスを任意の適切な構成で含むことができる。プロセッサ210のタイプの例には、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールド・プログラマブル・ゲート・アレイ、特定用途向け集積回路、及びディスクリート回路が含まれる。
メモリ230及び永続的なストレージ235は、記憶装置215の例である。記憶装置215は、情報(データ、プログラムコード、及び/又は他の適切な情報など)を一時的又は永続的に記憶し、検索を容易にすることができる任意の構造(複数可)を表す。メモリ230は、ランダム・アクセス・メモリ、又は任意の他の適切な揮発性又は不揮発性の記憶装置を表すことができる。永続的なストレージ235は、読み出し専用メモリ、ハードドライブ、フラッシュメモリ、又は光ディスクなど、データの長期記憶をサポートする1つ又は複数の構成要素又はデバイスを含むことができる。例えば、永続的なストレージ235は、データの1つ又は複数のデータベース、ボランティア・コンピューティング・グリッド内のセル用のクライアント・アプリケーション、ボランティア・コンピューティング・グリッド内のセルへのディスパッチを待つタスク、及び/又はボランティア・コンピューティング・グリッドからの処理結果などを記憶することができる。
通信インターフェース220は、他のシステム又はデバイスとの通信をサポートする。例えば、通信インターフェース220は、ネットワーク101を介した通信を容易にするネットワーク・インターフェース・カード又は無線トランシーバを含むことができる。通信インターフェース220は、任意の適切な物理的又は無線の通信リンクを介した通信をサポートすることができる。I/Oユニット225は、データの入出力を可能にする。例えば、I/Oユニット225は、キーボード、マウス、キーパッド、タッチスクリーン、又は他の適切な入力デバイスを介したユーザ入力のための接続を提供し得る。I/Oユニット225は、ディスプレイ、プリンタ、又は他の適切な出力デバイスに出力を送信することもできる。
図2はサーバ200の一例を示しているが、図2には様々な変更を加えることができる。例えば、図2の様々な構成要素は、組み合わせるか、さらに細分するか、又は省略することができ、特定のニーズに応じて付加的な構成要素を追加することができる。特定の例として、1つのシステムとして図示されているが、サーバ200は、遠隔に配置することができる複数のサーバシステムを含むことができる。別の例では、異なるサーバシステムが、本開示の様々な実施形態によるコンピューティング・タスクの協調処理用のプラットフォームを提供するために、処理リソース、ストレージ・リソース、及び/又は通信リソースの一部又は全部を提供することができる。別の例では、サーバ200は、ボランティア・コンピューティング・グリッドの一部であってもよい。例えば、ボランティア・コンピューティング・グリッド内の1つ又は複数のコンピューティング装置は、本明細書で説明するように、サーバ200の処理を個別に又は共同で実行するためのソフトウェアを含むことができる。
図3は、本開示の実施形態によるクライアント装置300の一例を示す。図3に示すクライアント装置300の実施形態は、例示のためだけのものであり、図1のクライアント装置106~114は、同じ構成又は同様の構成を有することができる。しかしながら、クライアント装置は多種多様な構成で提供され、図3は、本開示の範囲を電子デバイスの任意の特定の実装に限定しない。図3に示すように、クライアント装置300は、通信インターフェース(又は回路)305、プロセッサ(複数可)310、入出力(I/O)インターフェース315、入力325、ディスプレイ320、及びメモリ330を含む。メモリ330は、オペレーティング・システム(OS)332、及び1つ又は複数のクライアント・アプリケーション(複数可)334を含む。
通信インターフェース(又は回路)305は、他のシステム又はデバイスとの通信をサポートする。例えば、通信インターフェース305は、ネットワーク101を介した通信を容易にするネットワーク・インターフェース・カード又は無線トランシーバを含むことができる。通信インターフェース305は、任意の適切な物理的又は無線の通信リンク(複数可)を介した通信をサポートすることができる。無線通信を利用する実施形態では、通信インターフェース305は、様々な無線通信プロトコル(例えば、Bluetooth(登録商標)、Wi-Fi、セルラ、LTE通信プロトコルなど)を使用して、1つ又は複数のアンテナを介して着信RF信号を受信することができる。
プロセッサ(複数可)310は、1つ又は複数のプロセッサ又は他の処理装置を含むことができ、クライアント装置300の動作全体を制御するために、メモリ330に格納されたOS332を実行することができる。プロセッサ(複数可)310はまた、例えば、処理タスク又はコンピューティング・タスク、通信タスク又はネットワークタスク、及びボランティア・コンピューティング・グリッドの一部としてのストレージタスクなどのコンピューティング・タスクを実行するための、1つ又は複数のクライアント・アプリケーション用のプログラムコードなど、メモリ330に常駐するクライアント・アプリケーション334を実行することができる。クライアント・アプリケーション(複数可)334は、以下でより詳細に説明するように、機械学習アプリケーション、又はビデオゲームなどの対話型アプリケーション、又はユーザ入力を促すアプリケーションのための、プログラムコードを含むことができる。プロセッサ(複数可)310、通信インターフェース305、及び/又はメモリ330は、クライアント装置300のコンピューティング・リソースを構成する。プロセッサ310は、任意の適切な数及びタイプのプロセッサ又は他のデバイスを、任意の適切な構成で含むことができる。プロセッサ(複数可)310のタイプの例には、マイクロプロセッサ、マイクロコントローラ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ、フィールド・プログラマブル・ゲート・アレイ、特定用途向け集積回路、及びディスクリート回路が含まれる。
プロセッサ(複数可)310は、実行中のプロセスの必要に応じて、メモリ330にデータを移動させたり、メモリ330からデータを移動させたりすることができる。プロセッサ(複数可)310はまた、I/Oインターフェース315に結合される。I/Oインターフェース315は、ラップトップ・コンピュータ及びハンドヘルド・コンピュータなどの他のデバイスに接続する能力をクライアント装置300に提供する。I/Oインターフェース315は、アクセサリとプロセッサ(複数可)310との間の通信経路を提供する。
プロセッサ310は、入力325及びディスプレイ320にも結合される。クライアント装置300のオペレータは、入力325を使用して、データ及びインプットをクライアント装置300に入力することができる。例えば、入力325は、タッチスクリーン、ボタン、キーボード、トラックボール、マウス、スタイラス、電子ペン、ビデオゲーム・コントローラ等であってもよい。ディスプレイ320は、液晶ディスプレイ、LEDディスプレイ、又はウェブサイトなどからテキスト及び/又は少なくとも限定されたグラフィックスをレンダリングすることができる他のディスプレイであってもよい。メモリ330は、プロセッサ(複数可)310に結合される。メモリ330の一部は、ランダムアクセスメモリ(RAM)を含むことができ、メモリ330の別の部分は、フラッシュメモリ又は他の読み出し専用メモリ(ROM)を含むことができる。
図3はクライアント装置300の一例を示しているが、図3には様々な変更を加えることができる。例えば、図3の様々な構成要素を組み合わせるか、さらに細分するか、又は省略することができ、特定のニーズに応じて付加的な構成要素を追加することができる。特定の例として、プロセッサ(複数可)310は、1つ又は複数の中央処理装置(CPU)及び1つ又は複数のグラフィックス処理装置(GPU)などの、複数のプロセッサに分割することができる。別の例では、ディスプレイ320は、例えば、ビデオゲーム・コンソール又はデスクトップ・コンピュータ等で、クライアント装置300の一部に外部接続されてもよいし、又は接続されなくてもよい。
本開示の実施形態は、コンピューティング・リソースの消費者、プログラマ、研究者、及び開発者を、ボランティア・グリッド・コンピューティング・ネットワークのメンバーに結びつけ、コンピューティング・タスクを実行するためのコラボレーションを可能にするプラットフォームを提供する。本開示の実施形態は、その参加及び頻度が、信頼性のある効果的なボランティア・グリッド・コンピューティング・ネットワークにとっての課題であることを認識する。したがって、本開示の実施形態は、ボランティア・グリッド・コンピューティング・ネットワークのメンバーにインセンティブ及び関与を提供して、ネットワークサイズ、可用性、及び信頼性を改善する。本開示の実施形態は、さらに、クラウドソースの研究又は市民科学の使用と、機械学習アプリケーションをすべて単一のプラットフォーム内で処理するための計算リソースの統合とを介したコラボレーションのためのインターフェースを提供する。
様々な実施形態では、サーバ200に関連するクライアント装置300は、ゲームベースのボランティア・グリッド・コンピューティング・システムを形成する。一例では、コンピューティング・システムは、開発者がボランティア・コンピューティングを既存のゲームクライアントに容易に統合できるようにするプラグインなどのクライアント・アプリケーション又はその一部を使用して有効になる。ゲーム起動時に、クライアント・アプリケーション(例えば、ビデオゲーム・クライアントに関連するダイナミック・リンク・ライブラリ(DLL))のマネージャは、ワークユニット(WU)の収集、WUの処理、記憶、及びWU処理結果のサーバ200への返送を含む分散コンピューティング・タスクを管理するクライアント装置300上の別個のスレッド(複数可)を起動する。クライアント装置300上のスレッドは、サーバ200にプル要求(複数可)を発行する。サーバ200は、サーバ200を介して処理されている問題(複数可)に関連するデータのチャンク(例えば、WU)を、クライアント装置300に提供する。サーバ200は、また、データを分析するために使用されるアルゴリズムを提供することができる。データとアルゴリズムがクライアント装置300にダウンロードされた後で、スレッドはゲームと並行して実行され、データを分析することができる。
この別個のスレッドのアプローチは、多くのゲーム、特にリソース集約的ではないゲームで機能する。しかしながら、幾つかのゲームは、クライアント装置300においてかなりのコンピューティング・リソースを必要とし、これは、ゲーム性能及びユーザ経験に影響を与えるボランティア・コンピューティング・スレッドにつながり得る。この問題を低減するために、クライアント・アプリケーションのマネージャは、クライアント装置300内で実行されるボランティア・コンピューティングのための優先度の低いスレッド(複数可)を動的に作成し、必要に応じてゲームがリソースを要求できるようにするが、ゲームがより低い処理リソースを必要とする時間(例えば、スタート画面中、メニュー中、ゲームが一時停止されているとき、ゲーム内のロビーでマッチメイキングを待っている間など)も活用することを可能にする。
他の例では、クライアント装置300が、クライアント装置300上で常に実行されているスタンドアローンの起動アプリケーションを有することができる。起動アプリケーションは、ゲームプログラムなどの別個のクライアント・アプリケーション(複数可)334を起動するために使用することができる。次いで、ゲームプログラムは、起動アプリケーションに接続する。次いで、起動アプリケーションは、システム100に接続する。言い換えれば、クライアント・アプリケーション(複数可)334又はクライアント・アプリケーション(複数可)をシステム100に接続するゲームのマネージャは、クライアント・アプリケーション(複数可)334に統合されなくてもよい。例えば、ゲームプログラムは、クライアント装置300上の別のアプリケーションで実行されるマネージャに接続することができる。このように、1つの起動アプリケーションはクライアント装置300上に存在するが、マネージャをすべてのアプリケーションに個別に埋め込むのではなく、システム100内の多くの異なるアプリケーションに接続し、通信し、関与することができる。
さらに、いくつかの実施形態では、コンピューティング・システム・プラグインは、ゲームクライアントがボランティア・コンピューティング・プロセスとインターフェースで接続するためのフック又はタイを含む。このインターフェースは、ボランティア・コンピューティング問題へのユーザ寄与などのデータへのアクセスを可能にすると共に、コンピューティング・リソースの消費者、開発者、又は研究者に対し、動的な人間コンピューティング又は市民科学の機会を利用する能力を提供する。本明細書で説明するように、様々な実施形態は、ユーザの貢献、クレジットの形態又は結果に基づいて動的に生成されたコンテンツの形態におけるより大きなゲームプレイ値、又はプレーヤがプレイを続け、自分のコンピューティング・リソース及び/又は市民科学的な貢献を共有し続けるための他のモチベーションに関するユーザフィードバックを可能にし、及び/又はユーザフィードバックを要求することによって、ボランティア・コンピューティング・プロセスにさらなる改善を提供する。一例では、このデータ共有により、ユーザは自分のスコアを他人のスコアと比較し、研究の進捗状況とそれに対する自分の相対的な貢献度を視覚化することができる。
いくつかの実施形態では、ゲームクライアントに関連するDLLを介してボランティア・コンピューティング・スレッドを実行する利点が提供されるが、これはスレッドベースのアプローチが、さもなければ利用できないビデオゲーム・コンソールの処理能力へのアクセスを可能にするからである。他の実施形態では、クライアント装置上で実行される専用のボランティア・コンピューティング・アプリケーションが、実行時にデバイスごとにより多くの計算能力を提供し、市場の膨大な数のゲーマーを利用し、多数の付加的な計算能力のリソースを提供することができる。
いくつかの実施形態では、専用のボランティア・コンピューティング・システム及びビデオゲームベースのボランティア・コンピューティング・システムは、共通のプラットフォームを共有することができ、それによって、いずれかの形態のボランティア・コンピューティングの貢献に対する報酬を、ビデオゲーム内を含む任意のタイプの利益のために利用することができる。以下でより詳細に説明するように、ボランティア・コンピューティングの管理は、サーバ102などの中央サーバを使用して実行される。これは、ウェブサイトやコンパニオン・アプリケーションなどのサポート要素をボランティア・コンピューティングに統合するための、開発者向けのインターフェースも提供する。次いで、開発者は、これらの補足サービスを使用してボランティア・コンピューティングの能力を高めたり、及び/又は、ユーザがボランティア・コンピューティング・データとインターフェースで接続することを可能にするオプションをユーザに提供できる。
図4は、本開示の種々の実施形態による、コンピューティング・タスクの協調処理のためのプラットフォームを提供するためのプロセスを示す。例えば、図4に示すプロセスは、図2のサーバ200によって実施されるものとして説明される。このプロセスは、図1のサーバ102~104のいずれによっても実施することができる。
プロセスは、サーバ200が、コンピューティング・リソース(資源)の消費者のためのインターフェースを、コンピューティング・グリッドに提供することから始まる(ステップ405)。例えば、ステップ405において、サーバ200は、例えば、データプロセッサ、データベース、ネットワーク、プログラマ、研究者、及び/又は開発者などのコンピューティング・リソースの消費者のためのコンピュータシステムに、ネットワークを介して接続して、コンピューティング・リソースを必要とするプロジェクト又はタスクを受信することができる。多くのコンピューティング、研究、又は開発プロジェクトは、より高速なソリューション、又はソリューションに対するさらなる検証及び改善を提供するために、増加した量のコンピューティング・リソースから著しく恩恵を得ることができる。このステップの一部として、サーバ200又はおそらくゲーム開発者に関連付けられたサーバ(例えば、サーバ103)は、インターフェースを介して1つ又は複数のゲームを提供し、問題に対するソリューションを提供することができる。例えば、特定のタスクのゲーム化は、ユーザの関与を促進し、利用可能なコンピューティング・リソースの量を増加させる。いくつかの実施形態では、このビデオゲーム(又は1セットの複数のゲーム)は、実行されるタスク又は研究のタイプには無関係である。様々な実施形態において、ビデオゲームは、人間の脳の能力を活用して三次元パターンマッチング及び空間的推論を実行し、通常のブルートフォース機械学習アルゴリズムよりも迅速に問題を解決するのを助けるように開発される。
次に、サーバ200は、1つ又は複数のクライアント・アプリケーションを提供する(ステップ410)。例えば、ステップ410において、サーバ200は、クライアント装置がボランティア・コンピューティング・グリッドの参加者となるように、クライアント装置(例えば、クライアント装置106~114など)にソフトウェアを提供することができる。クライアント・アプリケーションは、少なくとも、クライアント装置がプロジェクト又はコンピューティング・タスクを要求し、受信する機能、及びプロジェクトの結果を報告する機能を提供する。例えば、クライアント・アプリケーションは、コンピューティング・タスクを要求する機械学習アプリケーションに関連するプログラムコード、機械学習アルゴリズムの少なくとも一部を処理するためのプログラムコード、又は、ユーザからの入力を利用するタスク用の対話型アプリケーションに関連するプログラムコードを含むことができる。
1つ又は複数のクライアント装置に1つ又は複数のクライアント・アプリケーションを提供する際に、異なるクライアント装置に対して提供される1つ又は複数のクライアント・アプリケーション内のプログラムコードは、異なるものとすることができる。例えば、対話型アプリケーションを介してユーザ入力を要求するためのプログラムコードは、(例えば、より多くのユーザが対話する可能性が高い又は統計的に判断されるゲームデバイスやパーソナル電子デバイスなど、デバイスのタイプに基づいて)一部のクライアント装置に送信されてもよい。一方、機械学習アプリケーションを処理するためのプログラムコードは、他のデバイス(例えば、より多くの処理能力又は記憶能力を有すると判断されたデバイスや、従来のサーバを実行する電子デバイス等のより頻繁にオン状態又はアイドル状態である可能性が高い又は統計的に判断されるデバイスなど、コンピューティング・リソースの可用性が高いデバイス)に送信されてもよい。
ステップ420に関してより詳細に説明されるように、クライアント・アプリケーションは、また、クライアント装置による参加を追跡し、評価し、奨励するための基準を含むことができる。このステップの一部として、サーバ200は、また、クライアント装置のユーザが、プレイして、又は、参加を促すために対話して、及び/又は、協力して本明細書で説明する問題を解決するために、ユーザ入力を必要とする1つ又は複数のゲーム又はプログラムなどの対話型アプリケーションをクライアント装置のユーザに提供することができる。
いくつかの実施形態では、このステップの一部として、アプリケーションプロバイダは、ゲーム内、ビデオ内、音楽内、又はウェブサイト広告などの広告内で動作することができる。例えば、従来の広告に加えて、又は従来の広告の代わりに、エンドユーザは、クライアント装置300のコンピューティング・リソースを広告に寄付するか、又はクライアント装置300のコンピューティング・リソースを広告に利用させることによって、エンドユーザが視聴しているコンテンツに対し、寄付又は「支払い」をすることができる。いくつかの実施形態では、これらの広告は、バックグラウンドを実行することができ、又は、ユーザからの対話性及び/又はユーザへの割り込みを、ほとんど又は全く伴わずに表示することができる。他の実施形態では、これらの広告はインタラクティブであり、人間の直感に基づくパターンマッチング又は他の市民科学フィードバックを要求することができる。例えば、広告は、コンピュータと人間を識別するための(CAPTCHA)、完全に自動化されたパブリック・チューリング・テスト(public Turing test)などの対話型のボット検出技法から得られたユーザ入力結果を利用して、例えば、トレーニングデータを生成するためのパターンマッチングを支援する。
その後、サーバ200は、コンピューティング・タスクをディスパッチして、管理する(ステップ415)。コンピューティング・タスクは、コンピューティング装置の処理リソース、コンピューティング・リソース、ストレージ・リソース、又はネットワーク・リソースなどのコンピューティング・リソースを利用するタスクである。例えば、このステップの一部として、コンピューティング・タスクは、例えば、対話型アプリケーションの一部として提示されるコンピューティング・タスク、マッチングタスク、又はパターン識別タスクなど、ユーザからの入力を必要とする1つ又は複数のタスクを含むことができる。コンピューティング・タスクは、また、機械学習アルゴリズムの処理用など、機械学習アプリケーションに関連するタスクを含むことができる。例えば、コンピューティング・タスクは、ボランティア・コンピューティング・グリッド上で実行されるクライアント・アプリケーションを介して提供される同じプラットフォーム内ですべて実行されるユーザ支援トレーニングデータを使用した機械学習アプリケーションを繰り返し更新するなど、ユーザから受け取った入力に基づいて機械学習アルゴリズムの少なくとも一部を反復的に処理することを含むことができる。いくつかの実施形態では、機械学習アルゴリズムの処理で使用されるユーザ入力が、例えば、ビデオゲームのゲームプレイ中に、対話型アプリケーションを介して要求され、受信される。さらに、ユーザ入力は、入力に基づいて機械学習アルゴリズムを処理するクライアント装置とは異なるクライアント装置から受信されてもよい。
ステップ415の一部として、サーバ200は、ボランティア・コンピューティング・グリッドのメンバーである1つ又は複数のクライアント装置から要求を受信することができる。要求は単に、クライアント装置のリソースが利用可能であることを示すものであってもよい。例えば、クライアント装置はアイドル状態になり、その結果、プロセッサリソースが自由になることがある。別の例では、クライアント装置がネットワーク接続されているため、ストレージ・リソースをグリッドに提供することの一部として、データの読み取り及び書き込みに利用可能であってもよい。いくつかの実施形態では、ステップ410において、タスクが、例えば、ゲームの一部としてクライアント・アプリケーションと共に既に提供されていてもよい。いくつかの実施形態では、サーバ200は、並行して実行可能なタスクと、結果検証のために冗長なタスクとを提供することにより、タスクを管理する。
いくつかの実施形態では、サーバ200は、ブロックチェーン技術を使用してコンピューティング・タスクをディスパッチし、管理することができる。ブロックチェーンは、暗号化を使用してリンクされ、保護されているレコード又はブロックのリストである。例えば、レコード又はブロックは、トランザクションデータ又はプログラムを含むことができる。これらの実施形態では、サーバ200は、完了されるべき様々なコンピューティング・タスクのレコードを、ブロックチェーンに追加することができる。クライアント装置(例えば、クライアント装置106~114)は、これらのコンピューティング・タスクを、ブロックチェーンから受信又はプルすることができる。これらのコンピューティング・タスクには、ユーザ入力又は人間の直感を必要とするタスクなどのユーザタスクが含まれる。サーバ200(及び/又は、これらの実施形態では、ブロックチェーン技術において「マイナー」と呼ばれる他のコンピューティング装置)は、コンピューティング・タスクの結果を検証しようと試みることによって、コンピューティング・タスクを管理する。例えば、サーバ200(又は、マイナーのグループ)は、ブロックチェーンに追加される新しいレコードの形態で結果を受信し、タスクに関連する基準に基づいてレコードを検証する。例えば、タスクに関連する基準は、実行される処理、タイミング、量、及び/又はタスク実行の結果の品質を含む。サーバ200(又は、マイナーのグループ)は、タスクの完了のためのデータを示す又はそのデータを含むレコードに基づいて、そのレコードを検証してもよい。さらに、サーバ200(又は、マイナーのグループ)は、タイミング又は結果の品質に基づいてレコードを検証してもよい。例えば、最初に実行するもの、特定の時間の前に終了したもの、又はタスクを実行する他の装置の結果と一定のレベルで一致する結果を、検証することができる。受信したレコードに対する一定のレベルの一致に基づいて、サーバ200(又は、マイナーのグループ)は、次に、そのレコードをブロックチェーンに追加する。追加の一部として、レコードは、レコードが受信されたクライアント装置に、例えば、暗号通貨の形式など、何らかの形式の価値を伝達することができる。
様々な実施形態では、サーバ200は、ローカルプロセス及びクライアント装置間のアクセスを調整するマネージャノード又はマスターノードである。これらの例では、クライアント装置は、様々なクライアント装置を単一のネットワークとしてサーバ200に提示するダイナミック・ドメインネーム・サーバ(DNS)システムを介してアクセス可能である。また、全体を通して説明したように、グリッド・コンピューティング・システムを介して提供されるコンピューティング・リソースは、処理リソースに限定されない。様々な実施形態において、サーバ200は、グリッド・コンピューティング・システムのクライアント装置を介して、分散ファイル・システムを実装する。例えば、サーバ200は、ファイルを所定のサイズ(たとえば、16MB、32MB、又は64MB)のチャンクに分割し、冗長性のために複製することができるチャンクをデバイス全体に分配し、アクセスするアプリケーションに共有スペースを単一のフォルダとして提示する。
次に、サーバ200は、参加インセンティブを提供する(ステップ420)。例えば、ステップ420において、サーバ200は、参加を奨励するための任意のタイプのインセンティブを提供することができる。インセンティブには、その貢献が重要なプロジェクトに資金を提供しているという情報、デジタル通貨、及びメディアコンテンツ、例えば、文学、画像、音楽、ビデオ、ビデオゲーム用の仮想オブジェクト、ビデオゲーム等が含まれるが、これらに限定されない。一例では、サーバ200は、参加の量及び/又は実行されたタスクの品質を追跡し、比例デジタル通貨、メディアコンテンツ、又はビデオゲーム用の仮想オブジェクトを提供することができる。例えば、参加は、継続時間、1秒当たりの浮動小数点演算(FLOPS)(又は、より一般的にはギガ-FLOPS(GFLOPS))、記憶時間量などのメトリックを介して追跡することができる。サーバ200は、例えば、より高度なソリューションをもたらすゲームプレイ中に達成されたスコアに基づいて、質的な参加を格付けすることもできる。このステップの一部として、サーバ200は、クライアント装置のユーザのアカウントにデジタル通貨(例えば、ビットコイン、ドル等)を入金し、ユーザのゲームプレイ体験を改善する追加の又はより良い仮想オブジェクトをビデオゲームに提供し、継続的なゲームプレイを可能にし、又は追加のビデオゲームのダウンロード/オンラインプレイを可能にすることができる。
様々な実施形態では、サーバ200は、メディアコンテンツを使用して参加を促す。例えば、音楽又はビデオなどの有料ストリーミングサービスを使用する一環として、ユーザがある程度のコンピューティング・リソースをグリッドに提供する場合、ストリーミングサービスの費用は補助されるか、又はカバーされる。音楽やビデオなどのほとんどのストリーミングサービスは、主に、デバイスのバッファリング及びネットワーク・リソースを使用する。例えば、オンライン・ビデオ・チャネルの視聴中又は音楽のストリーミング中に、デバイスは、ボランティア・コンピューティング・グリッドによる使用に利用可能な、未使用の処理リソース及び/又は長期的なストレージ・リソースを有する可能性が高い。補助された又は無料のストリーミング・コンテンツへの参加を奨励し、コンテンツへの参加中にエンドユーザを楽しませることによって、本開示の実施形態は、ボランティア・コンピューティング・グリッドのサイズ及び可用性を増大させることができる。様々な実施形態では、インセンティブがエンドユーザレベル又はコンテンツ・プロバイダレベルで提供されてもよい。例えば、オンライン・ビデオゲーム・プロバイダ又はメディア・コンテンツ・プロバイダは、エンドユーザのデバイスがボランティア・コンピューティング・グリッドの一部となることを可能にするために、ステップ400において提供されるクライアント・アプリケーションの少なくとも一部を、それらのコンテンツプレーヤ又はビデオゲームに含めることで補償され得る。次いで、これらのゲーム/メディアプロバイダは、エンドユーザのデバイスがボランティア・コンピューティング・グリッドに参加する結果として、エンドユーザに低コストのコンテンツ及びゲームを提供することができる。
その後、サーバ200は、タスクの結果を受信する(ステップ425)。例えば、ステップ425において、サーバ200は、コンピューティング・タスクが完了したとき、及び/又はネットワーク・リソースが利用可能になったときに、クライアント装置からWUの結果を受信することができる。このステップの一部として、サーバ200は、コンピューティング・タスクの結果の処理及び検証を実行することができる。例えば、特定のメトリック又はスコアを達成した結果のみが、研究者又は開発者による使用のためにフィルタリングされ得る。別の例では、サーバ200は、特定の数の冗長なタスクの結果を比較して、特定のクライアント装置からの結果が信頼できるかどうかを検証することができる。
次に、サーバ200は、タスクの結果を返す(ステップ430)。例えば、ステップ430で、サーバ200は、ステップ405でデータに提供されたものと同じインターフェースを使用して、結果をコンピューティング・リソースの消費者(例えば、サーバ104)に提供して、研究者及び/又は開発者の問題を解決したり、又はソリューションを検証することができる。このようにして、本開示の実施形態は、グリッド・コンピューティングを使用した共同の研究開発のためのプラットフォームを実装し、提供する。
図5は、本開示の様々な実施形態による、ボランティア・コンピューティング・グリッドに参加するためのプロセスを示す。例えば、図5に図示するプロセスは、図3のクライアント装置300によって実施されるものとして説明される。このプロセスは、図1のクライアント装置106~114のいずれによっても実施することができる。
プロセスは、クライアント装置300が、1つ又は複数のクライアント・アプリケーションを受信することから始まる(ステップ505)。例えば、いくつかの実施形態では、ステップ505において、クライアント装置300は、ボランティア・コンピューティング・グリッドに参加するための専用アプリケーションを受信することができる。クライアント装置300はまた、ビデオゲームなどの対話型アプリケーション、または、ゲームプレイ又はメディアストリーミング中のボランティア・コンピューティング・グリッド参加用のプラグイン又は他のコンポーネント内に含まれるメディアストリーミング・アプリケーションを受信することができる。クライアント・アプリケーションは、クライアント装置300による処理のための機械学習アプリケーション用のプログラムコードを含むことができる。
次に、クライアント装置300は、タスクを受信し、処理する(ステップ510)。例えば、ステップ510において、クライアント装置300は、受信したアプリケーションがクライアント装置300上で実行されるときに、コンピューティング・タスクを要求することができる。いくつかの実施形態では、タスクは、機械学習アプリケーションのために研究されているより大きな問題の一部であり、及び/又は、例えば上述したゲーム対話を介した市民科学コラボレーションの機会を含むことができる。次いで、クライアント装置300は、例えば、検証と、研究者及び/又は開発者への提供とのために、タスクの結果をサーバ200に返す(ステップ515)。
様々な実施形態では、ステップ510の一部として又はステップ510について、クライアント装置300は、対話型アプリケーション用のプログラムコードを実行して、ユーザからの入力を要求及び受信するためのユーザ・インターフェースを生成する。例えば、対話型アプリケーションは、画像又は一連の画像中のオブジェクト(複数可)を識別するためにユーザ入力を要求するプログラムであってもよく、又は、市民科学入力を提供するためにユーザ入力を要求するゲームであってもよい。クライアント装置300は、受信したコンピューティング・タスクの結果としてユーザ入力を受信して処理する。
追加的または代替的に、クライアント装置300は、機械学習アプリケーション用のプログラムコードを処理することができる。例えば、クライアント装置300は、例えば、機械学習アルゴリズムを繰り返し処理し、処理結果を記憶し、及び/又は機械学習アルゴリズム処理結果を検証することによって、コンピューティング・リソースを機械学習アプリケーションに更に提供することができる。別の例では、クライアント装置300は、機械学習アプリケーションに関連して、クライアント装置300又はコンピューティング・グリッド内の他のクライアント装置(複数可)によって受信されたユーザ入力の結果を繰り返し受信し処理して、機械学習アルゴリズムを反復的に改善することができる。例えば、クライアント装置300は、対話型アプリケーションからのパターン認識入力又はトレーニングデータ入力を利用して、ボランティア・コンピューティング・グリッドによって実行されるタスクの一部として、単一のプラットフォーム内のすべての機械学習アプリケーションを改善することができる。いくつかの実施形態では、クライアント装置300によって実行されるタスクは、コンピューティング・グリッド内の別のクライアント装置から受信することができる。例えば、クライアント装置300によって実行される機械学習タスク(複数可)は、機械学習アルゴリズムを文字通り改善するためにユーザ入力結果を提供する他のクライアント装置(複数可)から受信されてもよく、その逆も同様である。別の例では、クライアント装置300によって実行される対話型アプリケーションタスク(複数可)は、機械学習アルゴリズムの文字通りの改善において、クライアント装置300から受信したユーザ入力結果を処理している他のクライアント装置(複数可)から受信されてもよく、その逆もまた同様である。
様々な実施形態では、ステップ510及び515の一部として、又はステップ510及び515について、クライアント装置300は、ブロックチェーンから計算のためのタスクを受信し(例えば、上述のように)、タスクを実行し、タスクの完了としてブロックチェーンにポストされるレコードを、結果についてのデータとして送信することができる。例えば、これらの実施形態では、実行されるタスクは、コンピューティング・タスク又はパターンマッチングタスクなど、ユーザからの入力を必要とするタスクを含み、ブロックチェーンの一部である。次いで、クライアント装置300は、電子デバイスのユーザからの入力を要求及び受信することを含むタスクを実行し、タスクの完了を示すために必要なデータを生成することができる。例えば、このデータは、生成されたトレーニングデータ又はパターン認識を示すデータを含むことができる。次いで、クライアント装置300は、データ又は提案されたブロックチェーンのレコードをサーバ102(例えば、マイナー)に送信して、ブロックチェーンにポストし、タスクの完了のために独立して検証されたクレジットを受信する。
その後、クライアント装置300は、参加インセンティブを提供する(ステップ520)。例えば、ステップ520において、クライアント装置300は、エンドユーザに対して、ボランティア・コンピューティングへの参加を奨励するインセンティブを提供することができる。インセンティブの量及び/又は質は、提供されるボランティア・コンピューティングの貢献の量及び/又は質に基づくことができる。インセンティブ及び金額は、タスク完了時にクライアント装置において自律的に、又はタスクの結果の報告及び検証後にサーバ200を介して決定され得る。参加インセンティブは、例えば、デジタル通貨、暗号通貨、メディアコンテンツ、ビデオゲーム用の仮想オブジェクト、ビデオゲーム等のような、アプリケーションに関連するか否かにかかわらず、任意の有価アイテムとすることができる。いくつかの実施形態では、インセンティブが開発者レベルで適用されてもよく、それによって、エンドユーザは補助された又は無料のメディアコンテンツ、ゲーム、ゲーム内のレベル、ゲーム内の仮想オブジェクトなどによってインセンティブを得ることができる。したがって、クライアント装置による実際のタスク完了の前、最中、又は後に、エンドユーザのインセンティブを提供することができる。
図4及び図5はそれぞれ、グリッド・コンピューティングを使用し、ボランティア・コンピューティング・グリッドに参加する共同の研究開発のためのプラットフォームを提供するためのプロセスの例を示すが、様々な変更を図4及び図5に行うことができる。例えば、一連のステップとして示されているが、各図の様々なステップは、オーバーラップするか、並列に起こるか、異なる順序で起こるか、又は複数回起こることができる。別の例では、ステップは省略されてもよく、又は他のステップと置き換えられてもよい。
本特許文書全体を通して使用される特定の単語及び語句の定義を記載することが有利であり得る。用語「結合する(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。
さらに、本明細書で説明される様々な機能は、1つ又は複数のコンピュータプログラムによって実装又はサポートされることができ、その各々は、コンピュータ可読プログラムコードから形成され、コンピュータ可読媒体で実施される。「アプリケーション」及び「プログラム」という用語は、1つ又は複数のコンピュータプログラム、ソフトウェアコンポーネント、命令セット、プロシージャ、関数、オブジェクト、クラス、インスタンス、関連データ、又は適切なコンピュータ可読プログラムコードでの実装に適合されたそれらの一部分を指す。「コンピュータ可読プログラムコード」という語句は、ソースコード、オブジェクトコード、及び実行可能コードを含む任意のタイプのコンピュータコードを含む。「コンピュータ可読媒体」という語句は、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ハード・ディスク・ドライブ、コンパクト・ディスク(CD)、デジタル・ビデオ・ディスク(DVD)、又は任意の他のタイプのメモリなど、コンピュータによってアクセスすることができる任意のタイプの媒体を含む。「非一時的である」コンピュータ可読媒体は、一時的な電気信号又は他の信号を伝送する有線、無線、光、又は他の通信リンクを除外する。非一時的なコンピュータ可読媒体は書き換え可能な光ディスク又は消去可能なメモリデバイスのような、データを永久的に記憶することができる媒体と、データを記憶し、後に上書きすることができる媒体とを含む。
他の特定の語句の定義は、本特許文書全体を通して提供される。当業者はほとんどではないにしても多くの場合、そのような定義はそのような定義された単語及び句の以前の使用ならびに将来の使用に適用されることを理解すべきである。
本開示は例示的な実施形態を用いて説明されてきたが、当業者には様々な変更及び修正が示唆され得る。本開示は、添付の特許請求の範囲内にあるような変更及び修正を包含することが意図される。
一実施形態は、コンピューティング・タスクを処理するための方法を提供する。この方法は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーションを複数のクライアント装置に送信することを含む。プログラムコードは複数のクライアント装置のうちの1つ又は複数のプロセッサによって実行されると、1つ又は複数のクライアント装置に、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求し、要求された入力を受信し、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理し、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。この方法はさらに、受信された入力の結果と、コンピューティング・タスクを処理するための機械学習アプリケーションの少なくとも一部の処理とに関連するデータを受信し、処理することを含む。
別の実施形態は、コンピューティング・タスクを処理するためのシステムを提供する。システムは、通信インターフェースと、通信インターフェースに動作可能に接続されたプロセッサとを含む。通信インターフェースは、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアント・アプリケーションを複数のクライアント装置に送信するように構成される。プログラムコードは複数のクライアント・装置のうちの1つ又は複数のプロセッサによって実行されると、1つ又は複数のクライアント・装置に、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、1つ又は複数のクライアント装置のユーザからの入力を要求し、要求された入力を受信し、1つ又は複数のクライアント装置のコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理し、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。通信インターフェースは、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを受信するようにさらに構成される。プロセッサはコンピューティング・タスクを処理するために、受信された入力の結果と、機械学習アプリケーションの少なくとも一部の処理とに関連するデータを処理するように構成される。
別の実施形態は、非一時的なコンピュータ可読媒体を提供する。非一時的なコンピュータ可読媒体は、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む。プログラムコードは、電子デバイスのプロセッサによって実行されると、電子デバイスに、対話型アプリケーションのためのユーザ・インターフェースを生成させ、生成された対話型アプリケーションのためのユーザ・インターフェースを使用して、電子デバイスのユーザからの入力を要求し、要求された入力を受信し、電子デバイスのコンピューティング・リソースを使用して、機械学習アプリケーションの少なくとも一部を処理し、受信された入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連するデータを送信させる。
上記の例及び実施形態のいずれにおいても、複数のクライアント装置は、ボランティア・コンピューティング・グリッドを形成し、機械学習アプリケーションの少なくとも一部の処理は、ボランティア・コンピューティング・グリッド内のクライアント装置のうちの少なくとも1つによって受信された受信入力に少なくとも部分的に基づいて実行される。
上記の例及び実施形態のいずれにおいても、1つ又は複数のクライアント装置のそれぞれから受信された結果に関連するデータに基づいて参加インセンティブを提供することが含まれ得る。
上記の例及び実施形態のいずれにおいても、1つのクライアント装置が1つ又は複数のクライアント・アプリケーションを実行しているときに、複数のクライアント装置のうちの1つに少なくとも補助されたメディアコンテンツが提供されることを可能にすることが含まれ得る。
上記の例及び実施形態のいずれにおいても、複数のクライアント装置を介した完了のためのタスクをブロックチェーンに追加し、完了のために1つ又は複数のクライアント装置のユーザからの入力を必要とするタスクを含めることができる。結果に関連するデータを受信し、処理することは、1つ又は複数のクライアント装置から、タスクの完了としてブロックチェーンにポストされるレコードを受信することと、タスクに関連する基準に基づいて受信したレコードを検証することと、検証されたレコードをブロックチェーンに追加することとを含む。
上記の例及び実施形態のいずれかでは、受信したレコードを検証することはタスクに関連する基準に基づいて、レコードがタスクの完了を示すかどうかを判定することと、タスクの完了を示すレコードに応答してレコードを検証することとを含む。
上記の例及び実施形態のいずれにおいても、システムはクライアント装置のうちの1つであってもよく、方法はクライアント装置のうちの1つによって実行されてもよい。
上記の例及び実施形態のいずれにおいても、電子デバイスは、ボランティア・コンピューティング・グリッドを形成する複数のクライアント装置のうちの1つであり、機械学習アプリケーションの少なくとも一部の処理は、ボランティア・コンピューティング・グリッド内のクライアント装置のうちの少なくとも1つによって受信された受信入力に少なくとも部分的に基づいて実行される。
上記の例及び実施形態のいずれにおいても、電子デバイスは、結果に関連するデータに基づいて参加インセンティブを受信する。
上記の例及び実施形態のいずれにおいても、電子デバイスは、電子デバイスが対話型アプリケーション又は機械学習アプリケーションのうちの少なくとも1つに関連するプログラムコードを処理しているときに、少なくとも補助されたメディアコンテンツを受信する。
上記の例及び実施形態のいずれにおいても、電子デバイスは、完了のために電子デバイスのユーザからの入力を必要とする完了のためのタスクをブロックチェーンから受信し、電子デバイスのユーザからの入力を要求及び受信することを含むタスクを実行し、結果に関連するデータにおいて、タスクの完了としてブロックチェーンにポストされるレコードを送信する。
本出願における説明のいずれも、任意の特定の要素、ステップ、又は機能が、特許請求の範囲に含まれなければならない本質的な要素であることを暗示するものとして解釈されるべきではない。特許された主題の範囲は、特許請求の範囲によってのみ定義される。さらに、特許請求の範囲のいずれも、「のための手段(means for)」という正確な単語の後にパーティクルが続かない限り、35 U.S.C§112(f)を呼び出すようには意図されていない。

Claims (15)

  1. コンピューティング・タスクを処理する方法であって、
    通信インターフェース(220)が、対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアントアプリケーション(334)を複数のクライアント装置(106~114)に送信し、
    前記プログラムコードは、前記複数のクライアント装置のうちの1つ又は複数のプ ロセッサ(310)によって実行されると、1つ又は複数のクライアント装置に、
    前記対話型アプリケーションのためのユーザ・インターフェースを生成させ、
    前記対話型アプリケーションのために生成されたユーザ・インターフェースを使 用して、前記1つ又は複数のクライアント装置のユーザからの入力を要求させ、
    要求された入力を受け付けさせ
    前記1つ又は複数のクライアント装置のコンピューティング・リソースを使用し て、前記ユーザからの入力のうち前記機械学習アプリケーションに関連して受け付 けられる受付入力の結果を用いて、前記機械学習アプリケーションの少なくとも一 部を処理させ、
    前記受付入力の結果及び前記機械学習アプリケーションの少なくとも一部の処理 に関連するデータを送信させ、
    前記通信インターフェース(220)が、前記受付入力の結果及び前記機械学習アプリケーションの少なくとも一部の処理に関連する前記データを受信し、
    前記通信インターフェースに動作可能に接続されたプロセッサ(210)が、前記通信インターフェース(220)により受信された前記データを処理して、コンピューティング・タスクを処理する、
    方法。
  2. 前記対話型アプリケーションはビデオゲームであり、前記機械学習アプリケーションの処理に使用される要求され且つ受け付けられる受付入力は、前記ビデオゲームのゲームプレイ中に要求され且つ受け付けられる、請求項1に記載の方法。
  3. 前記複数のクライアント装置はボランティア・コンピューティング・グリッドを形成し、1つのクライアント装置における前記機械学習アプリケーションの少なくとも一部の処理は、前記ボランティア・コンピューティング・グリッド内の前記1つのクライアント装置及び他のクライアント装置のうちの少なくとも1つによって受け付けられる前記受付入力に少なくとも部分的に基づいて実行される、請求項1に記載の方法。
  4. 前記複数のクライアント装置のうちの1つのクライアント装置が前記1つ又は複数のクライアント・アプリケーションを実行している場合に、前記プロセッサ(210)が、前記1つのクライアント装置に対し、少なくともメディアコンテンツを参加インセンティブとして提供することを可能にすることをさらに含む、請求項1に記載の方法。
  5. 前記プロセッサ(210)が、前記複数のクライアント装置を介して完了のためのタスクをブロックチェーンに追加することを、さらに含み、前記タスクは、完了するために前記1つ又は複数のクライアント装置のユーザからの入力を必要とし、
    前記結果に関連する前記データを受信し且つ処理することは、
    前記1つ又は複数のクライアント装置から前記タスクの完了として前記ブロック チェーンにポストされるレコードを受信することと、
    前記タスクに関連する基準に基づいて受信した前記レコードを検証することと、
    検証されたレコードを前記ブロックチェーンに追加することと、を含む、
    請求項1記載の方法。
  6. コンピューティング・タスクを処理するためのシステム(100)であって、
    通信インターフェース(220)と、前記通信インターフェースに動作可能に接続されたプロセッサ(210)とを含み、
    前記通信インターフェース(220)が、
    対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコードを含む1つ又は複数のクライアントアプリケーション(334)を複数のクライアント装置(106~114)に送信し、
    前記プログラムコードは、前記複数のクライアント装置のうちの1つ又は複数のプ ロセッサ(310)によって実行されると、1つ又は複数のクライアント装置に、
    前記対話型アプリケーションのためのユーザ・インターフェースを生成させ、
    前記対話型アプリケーションのために生成されたユーザ・インターフェースを使 用して、前記1つ又は複数のクライアント装置のユーザからの入力を要求させ、
    要求された入力を受け付けさせ
    前記1つ又は複数のクライアント装置のコンピューティング・リソースを使用し て、前記ユーザからの入力のうち前記機械学習アプリケーションに関連して受け付 けられる受付入力の結果を用いて、前記機械学習アプリケーションの少なくとも一 部を処理させ、
    前記受付入力の結果及び前記機械学習アプリケーションの少なくとも一部の処理 に関連するデータを送信させ、
    前記受付入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを受信するように構成され、
    前記プロセッサ(210)が、
    前記受付入力の結果及び機械学習アプリケーションの少なくとも一部の処理に関連する前記データを処理して、コンピューティング・タスクを処理するように構成される、
    システム。
  7. 前記対話型アプリケーションはビデオゲームであり、前記機械学習アプリケーションの処理に使用される要求され且つ受け付けられる受付入力は、ビデオゲームのゲームプレイ中に要求され且つ受け付けられる、請求項6に記載のシステム。
  8. 前記複数のクライアント装置はボランティア・コンピューティング・グリッドを形成し、1つのクライアント装置における前記機械学習アプリケーションの少なくとも一部の処理は、前記ボランティア・コンピューティング・グリッド内の前記1つのクライアント装置及び他のクライアント装置のうちの少なくとも1つによって受け付けられる前記受付入力に少なくとも部分的に基づいて実行される、請求項6に記載のシステム。
  9. 前記プロセッサ(210)は、前記複数のクライアント装置のうちの1つのクライアント装置が前記1つ又は複数のクライアント・アプリケーションを実行している場合に前記1つのクライアント装置に対し、少なくともメディアコンテンツを参加インセンティブとして提供することを可能とするようにさらに構成される、請求項6に記載のシステム。
  10. 前記プロセッサ(210)は、前記複数のクライアント装置を介して完了のためのタスクをブロックチェーンに追加するようにさらに構成され、前記タスクは、完了するために前記1つ又は複数のクライアント装置のユーザからの入力を必要とし、
    前記通信インターフェースは、前記結果に関連する前記データにおいて、前記タスクの完了として前記ブロックチェーンにポストされるレコードを前記1つ又は複数のクライアント装置から受信するように構成され、
    前記プロセッサ(210)は、前記タスクに関連する基準に基づいて受信された前記レコードを検証し、検証された前記レコードを前記ブロックチェーンに追加するようにさらに構成される、
    請求項6に記載のシステム。
  11. 対話型アプリケーション及び機械学習アプリケーションに関連するプログラムコード(334)を含む非一時的なコンピュータ可読媒体であって、
    前記プログラムコードは、電子デバイス(300)のプロセッサ(310)によって実行されると、
    前記電子デバイスに、
    前記対話型アプリケーションのためのユーザ・インターフェースを生成させ、
    前記対話型アプリケーションのために生成されたユーザ・インターフェースを使 用して、前記電子デバイスのユーザからの入力を要求させ、
    要求された入力を受け付けさせ
    前記電子デバイスのコンピューティング・リソースを使用して、前記ユーザから の入力のうち前記機械学習アプリケーションに関連して受け付けられる受付入力の 結果を用いて、前記機械学習アプリケーションの少なくとも一部を処理させ、
    前記受付入力の結果及び前記機械学習アプリケーションの少なくとも一部の処理 に関連するデータを、前記データを処理してコンピューティング・タスクを処理す るサーバ(200)に送信させる、
    コンピュータ可読媒体。
  12. 前記対話型アプリケーションはビデオゲームであり、前記機械学習アプリケーションの処理に使用される要求され且つ受け付けられる受付入力は、ビデオゲームのゲームプレイ中に要求され且つ受け付けられる、請求項11に記載のコンピュータ可読媒体。
  13. 前記電子デバイスは、ボランティア・コンピューティング・グリッドを形成する複数のクライアント装置のうちの1つであり、前記電子デバイスにおける前記機械学習アプリケーションの少なくとも一部の処理は、前記ボランティア・コンピューティング・グリッド内の前記1つのクライアント装置及び他のクライアント装置のうちの少なくとも1つによって受け付けられる前記受付入力に少なくとも部分的に基づいて実行される、請求項11に記載のコンピュータ可読媒体。
  14. 第2のプログラムコードをさらに含み、
    前記第2のプログラムコードは、前記電子デバイスの前記プロセッサ(310)によって実行されると、前記電子デバイスが前記対話型アプリケーション又は前記機械学習アプリケーションのうちの少なくとも1つに関連する前記プログラムコードを処理している場合に、前記電子デバイスに、少なくともメディアコンテンツを参加インセンティブとして受信させる
    請求項11に記載のコンピュータ可読媒体。
  15. 第3のプログラムコードをさらに含み、
    前記第3のプログラムコードは、前記電子デバイスの前記プロセッサ(310)によって実行されると、前記電子デバイスに、
    完了のためのタスクであって、完了のために前記電子デバイスのユーザからの入力 を必要とするタスクをブロックチェーンから受信させ、
    前記電子デバイスのユーザからの入力を要求して受け付けることを含む前記タスク を実行させ、
    前記タスクの完了として前記ブロックチェーンにポストされるレコードを、前記結 果に関連するデータとして前記サーバ(200)に送信させる、
    請求項11に記載のコンピュータ可読媒体。
JP2019568252A 2017-06-05 2018-06-05 タスクを共同処理するためのプラットフォーム Active JP7212266B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762515398P 2017-06-05 2017-06-05
US62/515,398 2017-06-05
PCT/US2018/036123 WO2018226740A2 (en) 2017-06-05 2018-06-05 Platform for collaborative processing of computing tasks

Publications (2)

Publication Number Publication Date
JP2020522364A JP2020522364A (ja) 2020-07-30
JP7212266B2 true JP7212266B2 (ja) 2023-01-25

Family

ID=64459633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019568252A Active JP7212266B2 (ja) 2017-06-05 2018-06-05 タスクを共同処理するためのプラットフォーム

Country Status (6)

Country Link
US (1) US11327807B2 (ja)
EP (1) EP3622388B1 (ja)
JP (1) JP7212266B2 (ja)
CN (1) CN111406249B (ja)
CA (1) CA3067903A1 (ja)
WO (1) WO2018226740A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107360206B (zh) * 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统
CN110728363B (zh) * 2018-06-29 2022-11-18 华为技术有限公司 任务处理方法和装置
US10972479B2 (en) * 2018-08-02 2021-04-06 Balanced Media Technology, LLC Task completion using a blockchain network
US11468431B2 (en) * 2018-11-20 2022-10-11 Forte Labs, Inc. System and method for authorizing blockchain network transactions
US11373119B1 (en) * 2019-03-29 2022-06-28 Amazon Technologies, Inc. Framework for building, orchestrating and deploying large-scale machine learning applications
US11995596B2 (en) * 2019-04-04 2024-05-28 Sony Corporation System, method, and computer-readable medium for tracking information exchange
CN110245006B (zh) * 2019-05-07 2023-05-02 深圳壹账通智能科技有限公司 区块链事务的处理方法、装置、设备及存储介质
CN110944008B (zh) * 2019-09-13 2021-03-19 腾讯科技(深圳)有限公司 基于区块链的任务酬劳处理方法、装置、设备及存储介质
US11880809B2 (en) 2019-10-10 2024-01-23 Frontage Road Holdings, Llc Blockchain cross-chain non-fungible token exchange
CN112860421B (zh) * 2019-11-28 2024-05-07 伊姆西Ip控股有限责任公司 用于作业处理的方法、设备和计算机程序产品
US11516311B2 (en) * 2021-01-22 2022-11-29 Avago Technologies International Sales Pte. Limited Distributed machine-learning resource sharing and request routing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362149A (ja) 2003-06-03 2004-12-24 Yafoo Japan Corp グリッドコンピューティング仲介装置および方法
WO2008096390A1 (ja) 2007-02-02 2008-08-14 Sony Computer Entertainment Inc. 仲介サーバ、端末、及び分散処理方法
JP2016126759A (ja) 2015-01-05 2016-07-11 アバウト タイム コーポレーション 端末内の情報分析に基づいたメッセージ提供方法、装置およびそれに対するコンピュータプログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
US8239293B2 (en) * 2006-12-20 2012-08-07 Microsoft Corporation Computer system and method for bulk auditing, archiving, and selling personal property of a customer
US8739276B2 (en) * 2010-06-22 2014-05-27 Microsoft Corporation Automatic construction of human interaction proof engines
US8982066B2 (en) * 2012-03-05 2015-03-17 Ricoh Co., Ltd. Automatic ending of interactive whiteboard sessions
CN103116525A (zh) * 2013-01-24 2013-05-22 贺海武 一种Internet环境下MapReduce计算方法
US9800517B1 (en) * 2013-10-31 2017-10-24 Neil Anderson Secure distributed computing using containers
US20150134396A1 (en) * 2013-11-12 2015-05-14 Xerox Corporation Cloud-computing infrastructure
US9953487B2 (en) * 2014-01-15 2018-04-24 Gamblit Gaming, Llc Bonus element interleaved wagering system
US10846749B1 (en) * 2014-03-12 2020-11-24 Groupon, Inc. Method and system for offering promotion impressions using application programs
US10645046B2 (en) * 2014-08-29 2020-05-05 Google Llc Systems and methods for temporarily postponing messages
US10722802B2 (en) * 2015-07-24 2020-07-28 Silver Curve Games, Inc. Augmented reality rhythm game
CN105447088B (zh) * 2015-11-06 2019-04-09 杭州掘数科技有限公司 一种基于志愿者计算的多租户专业云爬虫系统
FR3044438A1 (fr) * 2015-11-27 2017-06-02 Thales Sa Systeme et procede d'aide a la decision
US11146535B2 (en) * 2016-10-12 2021-10-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US10272341B1 (en) * 2016-12-20 2019-04-30 Amazon Technologies, Inc. Procedural level generation for games
US10121027B2 (en) * 2017-02-16 2018-11-06 International Business Machines Corporation Dynamic quick response code branding
US10380129B2 (en) * 2017-04-06 2019-08-13 Microsoft Technology Licensing, Llc Automated measurement of content quality
WO2018212822A1 (en) * 2017-05-16 2018-11-22 Google Inc. Suggested actions for images
US10677599B2 (en) * 2017-05-22 2020-06-09 At&T Intellectual Property I, L.P. Systems and methods for providing improved navigation through interactive suggestion of improved solutions along a path of waypoints

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362149A (ja) 2003-06-03 2004-12-24 Yafoo Japan Corp グリッドコンピューティング仲介装置および方法
WO2008096390A1 (ja) 2007-02-02 2008-08-14 Sony Computer Entertainment Inc. 仲介サーバ、端末、及び分散処理方法
JP2016126759A (ja) 2015-01-05 2016-07-11 アバウト タイム コーポレーション 端末内の情報分析に基づいたメッセージ提供方法、装置およびそれに対するコンピュータプログラム

Also Published As

Publication number Publication date
EP3622388B1 (en) 2023-10-11
US11327807B2 (en) 2022-05-10
EP3622388A2 (en) 2020-03-18
US20180349201A1 (en) 2018-12-06
EP3622388A4 (en) 2021-03-17
CA3067903A1 (en) 2018-12-13
WO2018226740A3 (en) 2020-01-16
CN111406249A (zh) 2020-07-10
CN111406249B (zh) 2023-09-22
JP2020522364A (ja) 2020-07-30
WO2018226740A2 (en) 2018-12-13

Similar Documents

Publication Publication Date Title
JP7212266B2 (ja) タスクを共同処理するためのプラットフォーム
US11496485B2 (en) Task completion using a blockchain network
Sehgal et al. Cloud computing
US20120042000A1 (en) Method and apparatus for sociable computing in ad-hoc and configured peer-to-peer networks
US20190334957A1 (en) Project creation and distribution system
US9579561B2 (en) Allowing interactive post of an online game within a social network
JP2018075380A (ja) 共有サービスのためのアプリケーションプログラミングインターフェース
TWI785346B (zh) 用於轉換資料及最佳化資料轉換之雙重機器學習管道
CN107408164B (zh) 云中内容资产的数字管理
Patidar et al. Towards analyzing mobile app characteristics for mobile software development
WO2019133170A1 (en) System and method for providing software applications
US20180169529A1 (en) Sensor acquisition and analytics platform for enhancing interaction with adult devices
Jovanović et al. VoRtex enterprise: Decentralized virtual reality blockchain-based platform
US8924515B1 (en) Distribution of applications over a dispersed network
Chard et al. Experiences in the design and implementation of a social cloud for volunteer computing
US12019643B2 (en) Matching system and display method using real-time event processing
US11561989B2 (en) Matching system and display method using real-time event processing
Chu Deep resource allocation for a massively multiplayer online finance of tourism gamification in metaverse
Latimer Social distributed computing service framework
LEON et al. Implementing location based games with a purpose. The Urbanopoly Web case

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220405

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220902

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221226

R150 Certificate of patent or registration of utility model

Ref document number: 7212266

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150