gpt4 book ai didi

distributed-computing - 有 BOINC 编程经验吗?

转载 作者:行者123 更新时间:2023-12-04 00:20:31 24 4
gpt4 key购买 nike

我被 BOINC 吸引来做我的一个小项目。我听说过 BOINC,但没有详细了解它的工作原理,主要是因为我现在专注于其他优先事项。我想知道的是,你们中是否有人真的尝试过为 BOINC 编程并在分布式计算机网络上运行程序。我特别对以下问题感兴趣:

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

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

    最佳答案

    我管理了一个 BOINC 项目(现已解散),我参与了 BOINC 的开发(以及与开发人员的许多争吵!),我至少实现了一个现在在服务器中的功能,并且我攻击过一两个不了解“保持软件最新”重要性的 BOINC 项目。我现在正在与另外三个人合作开发 BOINC 客户端的分支。够了吗? :)

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

    关于你问的问题:

    How does it work? do you compile the code, post it somewhere and the clients download it and you receive workunit requests and results ?



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

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

    一旦在服务器上,完成的任务将通过一个“验证器”(您编写或使用其中一个示例)来检查计算是否有效,以及一个“同化器”(您编写的)对结果做一些有用的事情;例如解析输出文件并将数据放入关系数据库,或者通过电子邮件告诉您您找到了生命、宇宙和一切的答案。或者将几个工作单元的结果打包,送回给“科学家”。

    What languages does it support? how does it deal with runtimes (I guess you will be able to provide a full, independent package with all the required stuff)



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

    我也写了一个 wrapper for Python .内部的 Python 应用程序无法访问 API,但这很容易添加。我只是暴露了我需要的最低限度。但这可能是个坏主意。如果您需要 BOINC,那是因为您需要大量 CPU 时间。在这种情况下,您将不会使用慢速解释语言。

    How do people know that your project exists



    大体上,就像他们知道您的博客存在的方式一样:那是您的营销/搜索引擎优化问题;)

    但是,您会获得一些与社区相关的独特事物:
  • 有 BOINCaholics 会依附于任何出现的项目,并积极寻找他们。并告诉他们的 friend 和队友。将您的项目放到网上,启用论坛,从至少一个网站获取链接,以便它出现在 Google 中,我保证在几天之内会出现一个主题为“ATA”的论坛主题(Alpha Testers Anonymous)。如果您愿意,我什至可以告诉您将在那里的人的用户名。它们是可预测的。 (公平地说,你也可能在那里找到我:D)
  • 有许多统计网站从多个项目中收集用户的信用统计数据并汇总它们。您的项目出现在其中一个站点上是人们查看它的重要方式。但是仅仅导出统计数据并不意味着你会到达那里;您必须向统计站点的管理员展示您的项目正在做一些有用的事情(在他们看来)并且可以信任。
  • 如果您与用户保持良好的沟通,应用程序的稳定性等,您将通过口耳相传获得更多用户,也许更重要的是,您将让现有用户留下来和/或为您提供更大的CPU 时间份额。小心“你只有一次机会给人留下第一印象”。不要在第一次发布时就大肆宣传您的项目,首先让口碑来照顾它,直到它足够稳定为止。

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

    and opt-in to participate?



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

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

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

    What services does it provide to make my life easier ? Is there a pre-made library for common tasks ?



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

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

    关于distributed-computing - 有 BOINC 编程经验吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888411/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com