ボランティア・コンピューティング
これらのシステムのほとんどは基本的な構造は同じで、ボランティアのコンピュータ上でクライアントプログラムが動作する。このプログラムは、インターネットを介してプロジェクトが運営するサーバーに定期的に接続し、仕事をリクエストして、完了した仕事の結果を報告する。多くのボランティアのコンピュータがファイアウォールの背後にあり、着信接続を許可しないために、この「プル」モデル (pull model) が必要である。システムは、各ユーザーの「クレジット」(credit) を追跡し、そのユーザーのコンピュータがプロジェクトのためにどれだけの仕事をしたかを数値的に測定する。
ボランティア・コンピューティング・システムは、ボランティア・コンピュータに関わるいくつかの問題に対処する必要がある。参加するコンピュータの多様性、解約 (個々のコンピュータが時間の経過とともにネットワークに参加したり離脱する傾向)、散発的な利用可能性、そして通常の使用中にパフォーマンスを妨害しない必要性である。
さらに、ボランティア・コンピューティングシステムは、正しさに関する問題に対処しなければならない。
ボランティアは説明責任がなく、基本的に匿名である。
ボランティアのコンピュータ (特にオーバークロックされたもの) の中には、時々誤動作を起こして誤った結果を返すものがある。
ボランティアの中には、意図的に誤った結果を返したり、結果に対して過剰なクレジットを要求する人もいる。
このような問題に対する一般的なアプローチとして、各ジョブが少なくとも2台のコンピュータで実行されるレプリケート・コンピューティングがある。仕事の結果 (および対応するクレジット) は、それらが十分に一致した場合にのみ受け入れられる。