我管理了一个 BOINC 项目(现在已经不复存在),我参与了 BOINC 的开发(并与开发人员发生了许多激烈的争吵!),我实现了至少一个现在在服务器中的功能,并且我已经破解了一两个不了解“保持软件最新”重要性的 BOINC 项目。我现在正在与其他三个人一起开发 BOINC 客户端的一个分支。够了吗?:)
除非您正在寻找可以雇用的人(提示!),否则您应该只针对您在设置 BOINC 服务器或开发应用程序或其他任何东西时遇到的实际问题就 SO 提出具体问题,而不是“有人知道吗?话题?”
关于您提出的问题:
它是如何工作的?您是否编译代码,将其发布到某个地方,然后客户下载它,您会收到工作单元的请求和结果吗?
你必须用 LAMP 和 BOINC 安装你自己的服务器。(请注意,SETI@Home 过去使用 Solaris 而不是 Linux;我很确定如果您自己编写配置,您可以使用非 Apache 网络服务器)。
您创建一个使用 BOINC API 的应用程序(或修改现有的计算应用程序以使用它),将其安装在服务器上,创建“工作单元”,并让客户端附加到您的项目。客户下载工作,处理它,然后上传回来。(这有点过于简单了......)
一旦在服务器上,完成的任务会通过一个“验证器”(您编写或使用其中一个示例)来检查计算是否有效,以及一个“同化器”(您编写的)对结果做一些有用的事情; 例如解析输出文件并将数据放入关系数据库,或者通过电子邮件向您发送您找到了生命、宇宙和一切的答案。或者把几个workunit的结果打包,发回给“科学家”。
它支持哪些语言?它如何处理运行时(我想您将能够提供包含所有必需内容的完整、独立的包)
它主要支持C++。该 API 与 C 兼容,并且有来自 Fortran 的生产项目使用它(climateprediction.net 是大约百万行的 Fortran)。
我还为 Python 编写了一个包装器。内部的 Python 应用程序无法访问 API,但很容易添加。我只是暴露了我需要的最低限度。但这可能是个坏主意。如果你需要 BOINC,那是因为你需要大量的 CPU 时间。在那种情况下,您一开始就不会使用慢速解释语言。
人们怎么知道你的项目存在
从广义上讲,他们知道您的博客存在的方式相同:那是您的营销/搜索引擎优化问题;)
但是,您会得到一些与社区相关的独特事物:
- 有 BOINCaholics 会加入任何出现的项目,并积极寻找它们。并告诉他们的朋友和队友。将您的项目放到网上,启用论坛,从至少一个网站链接它,以便它出现在 Google 中,我保证在几天之内,论坛主题将出现主题中带有“ATA”的主题(Alpha Testers Anonymous)。如果你愿意,我什至可以告诉你将在那里的人的用户名。他们是可以预见的。(公平地说,你也可以在那里找到我:D)
- 有许多统计网站从多个项目中收集用户的信用统计数据并将其汇总。您的项目出现在其中一个网站上是人们看到它的重要方式。但是仅仅导出统计数据并不意味着你会到达那里。你必须向统计网站的管理员展示你的项目正在做一些有用的事情(在他们看来)并且它可以被信任。
- 如果您与用户保持良好的沟通,应用程序的良好稳定性等。您将通过口碑获得更多用户,也许更重要的是,您将让现有用户留下和/或给您更大CPU 时间的份额。小心“你只有一次机会给人留下第一印象”。不要在第一次发布时宣传你的项目,首先让口碑来照顾它,直到它变得足够稳定。
当然,很明显,拥有计算机的世界人口中 BOINCaholics 的比例微不足道。不到 10% 的人使用 BOINC。如果您想针对广大人群:回到通常的网站营销,我无法为您提供帮助。请注意,在这种情况下,您还必须向他们解释 BOINC 的工作原理以及如何安装它!
并选择参加?
他们从他们的 BOINC 客户端附加项目(或者如果他们是 BOINC 的新手,请先下载它)。他们可以直接从 BOINC GUI 创建一个帐户。
在您自己作为用户使用 BOINC 一段时间之前,请不要考虑尝试开发自己的 BOINC 项目。这就像在没有使用网络浏览器经验的情况下制作网站(“我认为它可以工作,但我现在如何看待它?”)。去下载客户端,找一个很酷的项目,附上,然后看它工作。
我曾经试图帮助某人建立一个项目,然后发现他在用户方面没有使用 LAMP 和 BOINC 的经验。这是一次痛苦的经历。
它提供哪些服务让我的生活更轻松?是否有用于常见任务的预制库?
我无法详细说明这一点;您必须更具体地说明您的项目将做什么,“工作”来自哪里,需要在服务器端完成哪些处理,您的客户端应用程序使用什么语言/运行时/库等等,然后我可以告诉你 BOINC 是否有可以帮助你的东西。
...我想这已经足够了(哇,凌晨 3 点 15 分!)。