有 BOINC 编程经验吗?

2024-01-01

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

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

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


我管理了一个 BOINC 项目(现已不复存在),我参与了一些 BOINC 的开发(并与开发人员进行了许多激烈的争论!),我至少实现了一项功能,现在已在服务器中,并且我曾经黑过一两个不了解“保持软件最新”重要性的 BOINC 项目。我现在正在与另外三个人一起开发 BOINC 客户端的分支。够了吗? :)

除非你正在找人雇用(提示!),否则你应该只针对你在设置 BOINC 服务器或开发应用程序或其他什么时遇到的实际问题提出具体问题,而不是“有人知道吗?话题?”

关于您提出的问题:

它是如何工作的?您是否编译代码,将其发布到某个地方,然后客户端下载它,然后您收到工作单元请求和结果?

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

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

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

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

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

我还写了一个Python 的包装器 http://bitbucket.org/nicolas17/pyboinc/。内部的 Python 应用程序无法太多访问 API,但添加起来很容易。我只是暴露了我需要的最少内容。但这可能是个坏主意。如果您需要 BOINC,那是因为您需要大量的 CPU 时间。在这种情况下,您一开始就不会使用缓慢的解释语言。

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

概括地说,就像他们知道您的博客存在一样:那就是your营销/SEO 问题;)

然而,您会得到一些与社区相关的独特的东西:

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

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

并选择参加?

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

请甚至不要think尝试开发自己的 BOINC 项目,直到您自己使用 BOINC作为用户一阵子。这就像在没有使用网络浏览器经验的情况下创建一个网站(“我认为它可以工作,但我现在如何看待它?”)。下载客户端,找到一个很酷的项目,附加并观察它的工作情况。

我曾经尝试帮助某人建立一个项目,然后发现他没有从用户方面使用 LAMP 或 BOINC 的经验。那是个painful经验。

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有 BOINC 编程经验吗? 的相关文章

  • 在区块链中保存文件的最佳实践

    将文件保存为区块链数据的一部分的最佳实践是什么 我有非常大的文件需要保存 我们不能将这些文件保存在云存储 像 dropbox 这样的集中式解决方案 上 并使用文件哈希将它们与区块链数据链接起来吗 还是使用IPFS这样的分布式文件存储更好 或
  • 在 Apache Spark 中,是否可以为混洗 RDD 或联合分组 RDD 指定分区的首选位置?

    对于 Spark 1 6 唯一支持自定义分区位置的 API 是在创建 RDD 时 Distribute a local Scala collection to form an RDD with one or more location pr
  • MATLAB parfor 中的版本或字节顺序错误?

    我正在使用 MATLAB 进行并行计算parfor 代码结构看起来很像 assess fitness save communication overheads bitmaps pop 1 new indi idices porosities
  • 是否可以限制 MapReduce 作业访问远程数据?

    我们有特定的算法想要与 HDFS 集成 该算法要求我们在本地访问数据 该工作将专门在Mapper 然而 我们确实希望在分发文件方面利用 HDFS 提供可靠性和条带化 执行计算后 我们将使用Reducer只是发回答案 而不执行任何额外的工作
  • Corba ORBD 错误

    我正在使用 CORBA 开发一个简单的远程管理工具 这是我的服务器代码 To change this template choose Tools Templates and open the template in the editor p
  • 实现 p2p 消息广播网络的最新技术是什么?

    我知道快速谷歌可以得到大量的结果 并且关于这个主题的文献非常丰富 而这正是问题所在 在众多可能的解决方案中 我不确定哪一个是满足我的特定需求的最佳 最新的选择 我正在尝试在互联网上实现一个 p2p 网络 其唯一的功能是将消息广播到在线节点
  • Apache Flink 中的 Keyby 数据分布,逻辑运算符还是物理运算符?

    根据 Apache Flink 文档 KeyBy 转换在逻辑上将流划分为不相交的分区 所有具有相同键的记录都被分配到同一个分区 KeyBy是100 逻辑转换吗 它不包括跨集群节点分布的物理数据分区吗 如果是这样 那么如何保证所有具有相同键的
  • 什么是spark.driver.maxResultSize?

    The ref http spark apache org docs latest configuration html says 每个分区的所有分区的序列化结果总大小的限制 激发行动 例如收集 应至少为 1M 或 0 无限 如果总大小超过
  • 如何调试大型服务器端分布式Java应用程序

    这是我的问题 我正在尝试调试 Apache Cassandra 并了解应用程序的流程 IE 当客户端发送请求 例如 put 时 会调用哪些方法以及系统内部如何工作 所以 这就是我的想法 在 cassandra 代码中编写一个 main 方法
  • 当你真的搞砸了分布式系统的设计时该怎么办?

    相关问题 打破集中式数据库最有效的方法是什么 https stackoverflow com questions 2356805 what is the most efficient way to break up a centralise
  • C# 中的分布式计算

    我有一个特定的 DLL 其中包含一些语言处理类和方法 其中一种方法获取一个单词作为参数 并进行大约 3 秒的一些计算 并将相关结果保存在 SQL Server 数据库上 我想在 900k 字上运行这个 DLL 方法 并且这项工作可能每周重复
  • Spark CollectAsMap

    我想知道collectAsMap在Spark中是如何工作的 更具体地说 我想知道所有分区的数据聚合将在哪里进行 聚合发生在 master 或workers 中 在第一种情况下 每个工作人员将其数据发送到主设备上 当主设备从每个工作人员收集数
  • Lamport同步算法讨论中的“偏序”和“全序”是什么意思?

    我的理解是 部分排序和全排序是两组规则 部分排序有三个规则 1 如果a和b是同一进程中的两个事件 并且a出现在b之前 则a gt b 2 3 那什么是全序呢 为何如此命名 这些名称源于这样一个事实 在部分顺序中 并非所有元素都具有可比性 而
  • 使用阿姆达尔定律计算性能增益

    我对阿姆达尔定律来确定性能增益和串行应用程序部分感到困惑 但未能弄清楚这一点 已知的是以下内容 S N Speedup factor for N CPU s N Number of CPU s f The part of the progr
  • Erlang集群

    我正在尝试使用 Erlang 作为将所有组件粘合在一起的粘合剂来实现一个集群 我喜欢它创建一个完全连接的节点图的想法 但在在线阅读不同的文章后 似乎这不能很好地扩展 最多有 50 100 个节点 OTP 的开发者是否故意施加此限制 我确实知
  • 为 Spark 创建 JAR

    我正在关注这个guide https spark apache org docs 1 2 0 quick start html 但是当我尝试使用以下命令创建 JAR 时 我无法在 Spark 中运行 Scalasbt I have 简单 s
  • 自动完成后端

    这是一个面试问题 设计一个自动完成的分布式后端 我会回答如下 自动完成是按给定后缀在字典中进行搜索 这本词典可能应该被组织为trie 该词典是根据最常见的查询构建的 但这是另一回事了 现在我假设字典不会经常更改 例如每天一次而不是每毫秒一次
  • 我什么时候使用像 Paxos 这样的共识算法,什么时候使用像向量时钟这样的算法?

    我已经阅读了很多有关保证分布式系统中节点之间一致性的不同策略的文章 但我在弄清楚何时使用哪种算法时遇到了一些麻烦 我会在什么样的系统中使用矢量时钟之类的东西 哪个系统最适合使用 Paxos 之类的东西 两者是互相排斥的吗 有一个由 2 个节
  • 适用于商品 Linux 存储场的最佳分布式文件系统 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有很多闲置的英特尔 Linux 服务器 数百台 并且希望将它们用于 Web 托管和文件共享环境中的分布式文件系统 这不适用于 HPC 应用程序
  • 在分布式 dask 中,我们如何为每个工作人员选择 --nthreads 和 --nprocs ?

    我们如何选择 nthreads and nprocsDask 中每个工人的分布情况 我有 3 个工作线程 2 个工作线程有 4 个核心 每个核心有一个线程 1 个工作线程有 8 个核心 根据输出lscpu每个worker上的Linux命令

随机推荐