首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有BOINC的编程经验吗?

有BOINC的编程经验吗?
EN

Stack Overflow用户
提问于 2009-12-11 14:26:45
回答 3查看 2.5K关注 0票数 12

我为我的一个小项目而被BOINC所吸引。我听说过BOINC,但很少读到它是如何工作的,主要是因为我现在关注的是其他优先事项。我想知道的是,你们中是否有人真的试图为BOINC编程,并在分布式计算机网络上运行一个程序。我特别对以下问题感兴趣:

  1. 它怎麽工作?您是否编译了代码,将其发布到某个地方,然后客户端下载了它,然后收到了工作单元请求和结果?
  2. 它支持什么语言?它如何处理运行时(我想你将能够提供一个完整的、独立的包和所有所需的东西)。
  3. 人们如何知道你的项目存在,并选择参与?
  4. 它提供了哪些服务使我的生活更轻松?是否有一个用于常见任务的预先制作的库?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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将附加到任何项目的出现,并积极地搜索他们。告诉他们的朋友和队友。把你的项目放在网上,启用论坛,让它至少从一个网站链接,所以它出现在谷歌,我保证在几天内,论坛线程将出现'ATA‘在主题(阿尔法测试者匿名)。如果你愿意的话,我甚至可以告诉你那些人的用户名。它们是那么可预测的。(公平地说,你可能也会发现我在那里:D)
  • 有许多统计网站可以从多个项目收集用户的信用统计数据,并对其进行汇总。您的项目在其中一个网站上的存在是一个重要的方式,人们看到它。但是,仅仅导出统计数据并不意味着您就能达到目标;您必须显示stats站点的管理员--您的项目正在做一些有用的事情(根据他们的意见),并且它是可以信任的。
  • 如果你和你的用户保持良好的沟通,在应用程序中保持良好的稳定性等,你会通过口口相传获得更多的用户,也许更重要的是,你会让你的现有用户留下来和/或给你更多的CPU时间。小心“你只有一次机会给人留下第一印象”。不要在一开始就把你的项目做大宣传,首先让口碑来处理它,直到它变得足够稳定。

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

选择参加吗?

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

请不要尝试开发您自己的BOINC项目,直到您将BOINC自己作为用户使用了一段时间。这就像一个没有使用网络浏览器经验的网站(“我认为它在工作,但我现在该如何看待它呢?”)去下载客户端,找到一个很酷的项目,附加,并观看它的工作。

我曾经试图帮助某人建立一个项目,后来发现他既没有使用LAMP的经验,也没有使用BOINC的经验。这是一次痛苦的经历。

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

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

...and,我想现在就够了(哇,凌晨3点15分!)

票数 23
EN

Stack Overflow用户

发布于 2009-12-19 12:19:25

你试过读BOINC软件开发概述吗?它看上去相当全面,但我自己还没有使用过BOINC。

票数 3
EN

Stack Overflow用户

发布于 2011-06-23 21:26:39

我有“我自己的”项目,所以也许我也能帮上忙。

  1. 您可以在科学应用程序和服务器/客户端之间进行分离。确保您的科学应用程序在所需的操作系统上稳定工作,其余的是boinc的客户机/服务器的职责。它会发送你的应用程序和物流的东西。你应该知道一些dc相关的问题,但在我看来,这不是起点。
  2. 它直接支持c++,但只要它能“从usb驱动器上运行”,就可以了。有一个boinc包装器,可以处理非c++程序。我们为一个应用程序使用java。我们只需发送java运行时环境,而不仅仅是jar,但它可以正常工作。我们目前正在测试Scilab的应用程序:)。
  3. 宣传:)。boinc社区非常密集和快速。只要开始你的项目,他们就会找到你;)
  4. 什么是你的共同任务?

http://aerospaceresearch.net/constellation/

安德烈亚斯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1888411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档