BOINC的任何编程经验?

Ste*_*ini 12 distributed-computing boinc

我被BOINC吸引到了我的一个小项目.我听说过BOINC,但没有多看它是如何工作的,主要是因为我现在正专注于其他优先事项.我想知道的是,如果你们中的任何人真的试图为BOINC编程并且在分布式计算机网络上运行程序.我特别感兴趣的是以下问题:

  1. 它是如何工作的?你编译代码,在某处发布,客户端下载它,你收到workunit请求和结果?
  2. 它支持哪些语言?它是如何处理运行时的(我想你将能够提供一个包含所有必需内容的完整,独立的包)
  3. 人们如何知道您的项目存在,并选择参与?
  4. 它提供了哪些服务让我的生活更轻松?是否有预先制作的常用任务库?

我更喜欢现实生活.维基百科可以是一个很好的信息来源,但我更喜欢实际的用例.

Nic*_*lás 22

我已经管理了一个BOINC项目(现已不复存在),我参与了BOINC的开发(以及与开发人员的许多火焰战争!),我实现了至少一个现在在服务器中的功能,并且我已经攻击了一个或两个BOINC项目,这些项目不了解"保持软件最新"的重要性.我现在和另外三个人在BOINC客户端的分支上工作.够了吗?:)

除非您正在寻找某人雇用(提示!),否则您应该在设置BOINC服务器或开发应用程序或其他任何内容时询问有关您遇到的实际问题的具体问题,而不是"有没有人知道任何事情话题?"

关于你问的问题:

它是如何工作的?你编译代码,在某处发布,客户端下载它,你收到workunit请求和结果?

您必须使用LAMP和BOINC安装自己的服务器.(请注意,SETI @ Home过去常常使用Solaris而不是Linux;如果您自己编写配置,我很确定您可以使用非Apache Web服务器).

您创建一个使用BOINC API的应用程序(或修改现有的计算应用程序以使用它),将其安装在服务器上,创建"workunits",并让客户端附加到您的项目.客户端下载工作,处理它并将其上传回来.(这有点过于简单......)

一旦进入服务器,完成的任务将通过一个"验证器"(您编写或使用其中一个示例)检查计算是否有效,以及一个"同化器"(您编写)对结果有用的东西; 例如解析输出文件并将数据放入关系数据库,或通过电子邮件向您发送"生命的答案","宇宙的答案"和"一切".或者将几个工作单元的结果打包,并将它们发送回"科学家".

它支持哪些语言?它是如何处理运行时的(我想你将能够提供一个包含所有必需内容的完整,独立的包)

它主要支持C++.API与C兼容,并且有使用Fortran的生产项目(climateprediction.net是一个〜百万行的Fortran).

我还为Python编写了一个包装器.里面的Python应用程序没有太多的API访问权限,但这很容易添加.我刚刚暴露了我需要的最小化.但这可能是一个坏主意.如果你需要BOINC,那是因为你需要大量的CPU时间.在这种情况下,您不会使用缓慢的解释语言开始.

人们如何知道您的项目存在

从广义上讲,他们知道你的博客的存在方式是一样的:那就是你的营销/ SEO问题;)

但是,您可以获得与社区相关的一些独特内容:

  • 有BOINCaholics将附加到任何项目,并积极搜索它们.并告诉他们的朋友和队友.将您的项目置于在线状态,启用论坛,从至少一个网站链接,以便它出现在Google中,并且我保证在几天之内,论坛主题将在主题中显示"ATA"(Alpha Testers Anonymous).如果你愿意,我甚至可以告诉你那些将在那里的人的用户名.他们可以预见的.(公平地说,你也可能在那里找到:D)
  • 有许多统计网站从多个项目中收集用户的信用统计数据并进行汇总.您的项目在其中一个站点上的存在是人们看到它的重要方式.但只是输出统计数据并不意味着你会到达那里; 你必须向统计网站的管理员展示你的项目正在做一些有用的事情(对他们的意见),并且它可以被信任.
  • 如果您与用户保持良好的沟通,应用程序的稳定性等,您将通过口口相传获得更多用户,更重要的是,您可以让现有用户留下来/或者给您更大的空间占用CPU时间.小心"你只有一次机会给人留下第一印象".不要在首次发布时宣传你的项目大,先让口口相传,直到它足够稳定.

当然,很明显,拥有计算机的世界人口中BOINCaholics的比例是微不足道的.只有不到10%的人使用BOINC.如果你想针对广大人群:回到平常的网站营销,我无法帮助你.请注意,在这种情况下,您还必须向他们解释BOINC如何工作以及如何安装它!

并选择参加?

他们从BOINC客户端附加项目(如果他们是BOINC的新手,则先下载它).他们可以直接从BOINC GUI创建一个帐户.

在您使用BOINC 作为用户一段时间之前,请不要考虑尝试开发自己的BOINC项目.这就像制作一个没有使用网络浏览器经验的网站("我认为它有效,但我现在怎么看?").去下载客户端,找到一个很酷的项目,附加,并观察它是否有效.

我曾经试图帮助某人建立一个项目,然后发现他没有任何LAMP经验或用户方面的BOINC经验.这是一次痛苦的经历.

它提供了哪些服务让我的生活更轻松?是否有预先制作的常用任务库?

我不能详细说明这一点; 你必须更具体地了解你的项目将做什么,"工作"来自哪里,需要在服务器端完成什么样的处理,你的客户端应用程序使用什么语言/运行时/库等等然后我可以告诉你BOINC是否有可以帮助你的东西.

......我想现在已经够了(哇,凌晨3:15!).