我为我的一个小项目而被BOINC所吸引。我听说过BOINC,但很少读到它是如何工作的,主要是因为我现在关注的是其他优先事项。我想知道的是,你们中是否有人真的试图为BOINC编程,并在分布式计算机网络上运行一个程序。我特别对以下问题感兴趣:
我更喜欢真实的生活经历。维基百科可以是一个很好的信息来源,但我更喜欢实际用例。
发布于 2009-12-23 06:15:53
我有一个BOINC项目(现在已经失效),我参与了BOINC的开发(在许多与开发人员的火焰大战中!),我至少实现了一个特性,现在在服务器上,并且我黑了一两个BOINC项目,这些项目不理解“保持软件更新”的重要性。我现在在BOINC客户端的一个分支上和其他三个人一起工作。这就够了吗?)
除非你在找人雇佣(提示!),否则你应该问一些具体的问题,比如你在设置BOINC服务器或开发应用程序时遇到的实际问题,而不是“有人知道这个话题吗?”
关于你问的问题:
它怎麽工作?您是否编译了代码,将其发布到某个地方,然后客户端下载了它,然后收到了工作单元请求和结果?
您必须用LAMP和BOINC安装您自己的服务器。(请注意,SETI@Home以前使用Solaris而不是Linux;如果您自己编写配置,我很肯定您可以使用非Apache the服务器)。
您可以创建一个使用BOINC的应用程序(或者修改现有的计算应用程序来使用它),在服务器上安装它,创建“工作单元”,并让客户端附加到您的项目中。客户端下载工作,处理工作,然后上传回来。(这有点过于简单化了.)
在服务器上,完成的任务通过一个检查计算是否有效的“验证器”(您编写或使用了其中的一个示例),并通过一个“同化器”(您编写的)对结果做一些有用的事情;例如解析输出文件并将数据放入关系数据库,或者通过电子邮件告诉您,您找到了Life、宇宙等所有方面的答案。或者把几个工作单元的结果打包,然后送回给“科学家”。
它支持什么语言?它如何处理运行时(我想你将能够提供一个完整的、独立的包和所有所需的东西)。
它主要支持C++。该API与C兼容,并且有来自Fortran的生产项目(climateprediction.net是Fortran的一百万条线)。
我还写了一个Python包装器。内部的Python应用程序对API的访问并不多,但这很容易添加。我只是暴露了我所需要的最低限度。但这可能是个坏主意。如果您需要BOINC,那是因为您需要大量的CPU时间。在这种情况下,你就不会首先使用一种缓慢的解释语言。
人们怎么知道你的项目存在
总的来说,他们知道你的博客存在的方式是一样的:这就是你的营销/SEO问题;)
然而,您可以得到一些与社区相关的独特的东西:
当然,很明显,拥有计算机的世界人口中BOINCaholics的比例是微不足道的。不到10%的人使用BOINC。如果你想要针对广大的人群:回到通常的网站营销,而我不能在这方面帮助你。注意,在这种情况下,您还必须解释BOINC是如何工作的,以及如何安装它!
选择参加吗?
他们从他们的BOINC客户端附加这个项目(如果他们是BOINC的新手,可以先下载它)。他们可以直接从BOINC创建一个帐户。
请不要尝试开发您自己的BOINC项目,直到您将BOINC自己作为用户使用了一段时间。这就像一个没有使用网络浏览器经验的网站(“我认为它在工作,但我现在该如何看待它呢?”)去下载客户端,找到一个很酷的项目,附加,并观看它的工作。
我曾经试图帮助某人建立一个项目,后来发现他既没有使用LAMP的经验,也没有使用BOINC的经验。这是一次痛苦的经历。
它提供了哪些服务使我的生活更轻松?是否有一个用于常见任务的预先制作的库?
我不能详细说明这一点;您必须更具体地说明您的项目将做什么,“工作”来自哪里,服务器端需要做什么处理,客户端应用程序使用什么语言/运行时/库,等等,然后我可以告诉您BOINC是否有什么可以帮助您的东西。
...and,我想现在就够了(哇,凌晨3点15分!)
发布于 2009-12-19 12:19:25
你试过读BOINC软件开发概述吗?它看上去相当全面,但我自己还没有使用过BOINC。
发布于 2011-06-23 21:26:39
我有“我自己的”项目,所以也许我也能帮上忙。
http://aerospaceresearch.net/constellation/
安德烈亚斯
https://stackoverflow.com/questions/1888411
复制相似问题