中国分布式计算论坛

 找回密码
 新注册用户
搜索
楼主: vardrag

[讨论] 囤包神器boinc7.1.18

[复制链接]
 楼主| 发表于 2018-2-24 11:40:08 | 显示全部楼层
本帖最后由 vardrag 于 2018-2-24 11:44 编辑
0xCAFEBABE 发表于 2018-2-24 10:24
测试了一下,这个修改版是可以囤超过 1000 个包的。
测试项目是 Einstein@Home。
稍后我会重新发布一个版本 ...

单独一个1101不能说明问题,因为一次最多可以获得200左右的任务,稍微超过1000是可以的(1200左右),你需要看看能不能继续获得任务。我按照坛子里的方法安装你的文件,运行之后没有反应

发表于 2018-2-25 00:29:11 | 显示全部楼层
vardrag 发表于 2018-2-24 11:40
单独一个1101不能说明问题,因为一次最多可以获得200左右的任务,稍微超过1000是可以的(1200左右),你需 ...


一共下载了 1198 个任务,此后客户端还在继续请求任务,但服务器就不返回任何任务数据了,不知道是不是项目的服务端有什么限制。
计算机详情:https://einsteinathome.org/zh-hans/host/12628972
boinc 客户端 log:
  1. 24-Feb-2018 23:57:43 [Einstein@Home] Sending scheduler request: To fetch work.
  2. 24-Feb-2018 23:57:43 [Einstein@Home] Requesting new tasks for CPU
  3. 24-Feb-2018 23:59:47 [Einstein@Home] Scheduler request completed: got 10 new tasks
  4. 25-Feb-2018 00:00:55 [Einstein@Home] Sending scheduler request: To fetch work.
  5. 25-Feb-2018 00:00:55 [Einstein@Home] Requesting new tasks for CPU
  6. 25-Feb-2018 00:01:54 [Einstein@Home] <font color="#ff0000">Scheduler request failed: Server returned nothing (no headers, no data)</font>
  7. 25-Feb-2018 00:02:27 [---] Project communication failed: attempting access to reference site
  8. SIGPIPE: write on a pipe with no reader
  9. 25-Feb-2018 00:03:39 [Einstein@Home] Sending scheduler request: To fetch work.
  10. 25-Feb-2018 00:03:39 [Einstein@Home] Requesting new tasks for CPU
  11. 25-Feb-2018 00:06:06 [---] BOINC can't access Internet - check network connection or proxy configuration.
  12. ^C25-Feb-2018 00:10:03 [---] Received signal 2
  13. 25-Feb-2018 00:10:19 [---] Exiting
复制代码
 楼主| 发表于 2018-2-25 05:22:14 | 显示全部楼层
0xCAFEBABE 发表于 2018-2-25 00:29
一共下载了 1198 个任务,此后客户端还在继续请求任务,但服务器就不返回任何任务数据了,不知道是不是 ...

那个限制是客户端现有任务低于1000便请求新任务,高于1000停止请求,日志显示“运行任务过多”,所以如果1000之后仍然可以请求任务,就说明修改有效
发表于 2018-2-26 09:24:42 | 显示全部楼层
是的从代码里来看,超过 1000 个任务提示的确实是 "too many runnable tasks"。
  1. int job_limit = 1000;
  2. for (unsigned int i=0; i<gstate.projects.size(); i++) {
  3.     PROJECT* p = gstate.projects[i];
  4.     if (p->pwf.n_runnable_jobs > job_limit && !p->pwf.project_reason) {
  5.         p->pwf.project_reason = CANT_FETCH_WORK_TOO_MANY_RUNNABLE;
  6.     }
  7. }
复制代码
在 project_reason_string() 函数中 CANT_FETCH_WORK_TOO_MANY_RUNNABLE 对应着 "too many runnable tasks":
  1. case CANT_FETCH_WORK_TOO_MANY_RUNNABLE:
  2.     return "too many runnable tasks";
复制代码
大神最好能再帮忙确认一下。
我发布的程序不需要安装,解压缩之后直接运行就可以了:
  1. >$ tar xzvf boinc_7.9.0_x86_64_linux_dybai201802101451.tgz
  2. >$ cd out
  3. >$ ./boinc --allow_remote_gui_rpc
复制代码
此时 boinc 客户端就跑起来了,如果需要启用图形界面,可以在新 shell 里执行:
  1. >$ ./boincmgr
复制代码
我测试了一下,这个 boincmgr 会依赖一些库,如果安装起来嫌麻烦的话也可以找一个其它机器上能运行的 boincmgr,然后按照下面的方式远程访问这台机器上的 boinc 客户端。
为了方便描述,运行 boinc 客户端的机器称为 “A机器”,运行 boincmgr 的机器称为 “B机器”。
首先看一下 A机器 的访问密码:
  1. >$ cat gui_rpc_auth.cfg
  2. 168b3d7ad0d4d0fd2559ec7b4ef9f8c1
复制代码
把这个字符串 “168b3d7ad0d4d0fd2559ec7b4ef9f8c1” 复制到  B机器 上,并在 B机器上打开 boincmgr:
点击菜单上的 “文件”-->“选择计算机”(如图1),打开“选择计算机”的窗口(如图2)。
1.png
图1 选择计算机菜单
2.png
图2 选择计算机窗口
并在图2的窗口中分别填入 A机器 的 IP 地址和刚刚复制的密码“168b3d7ad0d4d0fd2559ec7b4ef9f8c1”,然后点击 “OK” 按钮就可以访问 A机器 的 boinc 客户端了。
 楼主| 发表于 2018-2-26 14:32:59 | 显示全部楼层
本帖最后由 vardrag 于 2018-2-26 14:51 编辑
0xCAFEBABE 发表于 2018-2-26 09:24
是的从代码里来看,超过 1000 个任务提示的确实是 "too many runnable tasks"。在 project_reason_string() ...

26-Feb-2018 14:36:33 [---] GUI RPC bind to port 31416 failed: 98

26-Feb-2018 14:36:34 gstate.init() failed

Error Code: -180

不能运行
发表于 2018-2-26 17:33:02 | 显示全部楼层
vardrag 发表于 2018-2-26 14:32
26-Feb-2018 14:36:33 [---] GUI RPC bind to port 31416 failed: 98

26-Feb-2018 14:36:34 gstate.init( ...

找了下代码,bind() 的时候失败了。
大神可以检查一下是不是 31416 端口被占用了,在运行 boinc 之前运行如下命令:
  1. >$ netstat -ano | grep 31416
复制代码
如果什么打印都没有,就说明端口没有被占用,这时候再运行 boinc。
否则若出现了类似的下面的打印,就说明有程序占用了 31416 端口:
  1. tcp        0      0 127.0.0.1:31416         0.0.0.0:*               LISTEN      off (0.00/0/0)
复制代码
这种情况要检查一下目前机器上是不是还运行了一个 boinc 客户端:
  1. >$ ps -ef | grep boinc
  2. user       6314   4547  0 17:18 pts/19   00:00:00 ./boinc --allow_remote_gui_rpc
  3. user       6759   6679  0 17:21 pts/20   00:00:00 grep --color=auto boinc
复制代码
若确实已经运行了一个 boinc 客户端,可以先将其退出,或者 kill 掉:
  1. >$ kill 6314
复制代码
等 6314 进程退出后就可以再次启动 boinc 了。
 楼主| 发表于 2018-3-11 21:12:56 | 显示全部楼层
本帖最后由 vardrag 于 2018-3-11 21:29 编辑
0xCAFEBABE 发表于 2018-2-26 17:33
找了下代码,bind() 的时候失败了。
大神可以检查一下是不是 31416 端口被占用了,在运行 boinc 之前运行 ...

WCG囤了2000+的任务,没有问题
那个文件夹是不是可以带走的,重装系统之后直接可以用?

 楼主| 发表于 2018-3-11 22:42:31 | 显示全部楼层
本帖最后由 vardrag 于 2018-3-13 08:06 编辑
0xCAFEBABE 发表于 2018-2-26 17:33
找了下代码,bind() 的时候失败了。
大神可以检查一下是不是 31416 端口被占用了,在运行 boinc 之前运行 ...

你除了这个1000上限还改了什么?
我之前的版本是7.4.X,就是自动安装的那个版本,发现两点不同:
WCG还有个限制是任务上限=CPU线程数X35,现在好像是51,这个也是客户端决定的吗?
现在可以自动更新获取任务直到满额,以前不是的



 楼主| 发表于 2018-3-13 01:16:02 | 显示全部楼层
0xCAFEBABE 发表于 2018-2-26 17:33
找了下代码,bind() 的时候失败了。
大神可以检查一下是不是 31416 端口被占用了,在运行 boinc 之前运行 ...

UBUNTU16.04,./boincmgr之后根据提示安装一个东西再运行没反应,难道是没装显卡驱动(显示器有问题,装不了显卡驱动)的问题?
发表于 2018-3-13 09:37:34 | 显示全部楼层
vardrag 发表于 2018-3-11 22:42
你除了这个1000上限还改了什么?
我之前的版本是7.4.X,就是自动安装的那个版本,发现两点不同:
WCG还有 ...

感谢大婶帮忙测试

那个是可以直接打包带走的,不需要安装,只要是在 64位 系统上就可以运行。
那个压缩包里我多拷贝了一个 common 文件夹,那个没有用,可以删掉。

除了 1000 的上限没有修改其它代码。
WCG 的任务上限是由谁决定的,我得在代码里找找看,或者大婶找一台机器用老版本对比一下试试,如果老版本里没有这个限制,那就说明是在客户端里限制的。
可以自动更新获取任务直到满额是不是正是期望的样子?  不过这个也不是我改的,可能是新版的功能吧。
另外我记得昨天说请求任务耗时增加了1天的时间,是有这个问题吗?

运行 ./boincmgr 之后提示安装的东西估计是图形库,并不是显卡驱动,这个东西依赖一些图形库,回头我研究研究。如果实在不行的话可以先参照我在19楼写的方法,用远程登录的方式管理任务。

我编译的这个版本是基于源码库中最新版本代码编译的,所以行为上很可能和老版本不同,也许有更多优化,也许有更多限制,大婶在使用的时候遇到啥不顺手的功能咱们可以继续深入定制,将来咱们搞个 equn 深度定制版  哈哈哈哈

评分

参与人数 2基本分 +36 收起 理由
vardrag + 28 很给力!
horst1981 + 8 辛苦了!

查看全部评分

 楼主| 发表于 2018-3-13 11:29:01 | 显示全部楼层
本帖最后由 vardrag 于 2018-3-13 11:35 编辑
0xCAFEBABE 发表于 2018-3-13 09:37
感谢大婶帮忙测试

那个是可以直接打包带走的,不需要安装,只要是在 64位 系统上就可以运行。

为了迎接五项赛,最近正在改造手上的系统

上面所谓的“经验”至多是去年的,搬家之后机器种类比较单一,而且也没怎么折腾
其中一台机器囤到299页(X15)就满了,算算是CPUX51,当然有可能<300页也是一个限制,今天继续测试
之前是认为除了1000之外,其它的限制是项目服务器上的:比如WCG的CPUX35,去年五项赛有个项目(LHC还是什么的)是CPUX10,E@H的GPU项目是估算你一天的完成量进行分配
因为这些限制很具体,不该是一个通用客户端应有的功能

至于一次请求给多少任务,这个也应该是由服务器决定的,理由同上;这个东西很复杂,有时候一台机器莫名其妙一次可获得的任务变成十几个,重置项目也没用,就像上了黑名单一样

OET这个项目对新主机和久不上线的主机有限制,需要运行一段时间才能大量获取任务,但是我3个系统却是3种结果:
机器A有两个系统,最近上线的系统每次获得33个;另一个久未上线的系统可运行任务被限制在64个
机器B一样久未上线,表现得就跟一直在线的一样,没有什么限制
装了那个库之后运行就是毫无反应,好像是启动失败了,这种2D的图形界面应该也不需要显卡驱动
现在就是远程控制的,其实更加方便

囤包自然是希望又多又快,还不用盯着
 楼主| 发表于 2018-3-13 12:23:52 | 显示全部楼层
本帖最后由 vardrag 于 2018-3-13 12:26 编辑
0xCAFEBABE 发表于 2018-3-13 09:37
感谢大婶帮忙测试

那个是可以直接打包带走的,不需要安装,只要是在 64位 系统上就可以运行。

2018/3/13 12:10:25 | World Community Grid | <![CDATA[This computer has reached a limit on tasks in progress]]>
看来另有限制,目前这个机器是4480,298页+10

点评

辛苦费 (「・ω・): 5.0
辛苦费 (「・ω・): 5
这个看上去像是服务器返回的数据。  发表于 2018-3-13 16:45
 楼主| 发表于 2018-3-13 14:56:34 | 显示全部楼层
本帖最后由 vardrag 于 2018-3-13 14:59 编辑
0xCAFEBABE 发表于 2018-3-13 09:37
感谢大婶帮忙测试

那个是可以直接打包带走的,不需要安装,只要是在 64位 系统上就可以运行。

可以带走的话,应该能像WIN一样复制几份,分别修改client_state,只要硬盘够大,服务器端的限制也不怕了
刚刚装了两台机器用的都是之前的设备ID,运行正常,现在一次请求有140个左右

点评

给力哟!: 5.0 辛苦费 (「・ω・): 5.0
给力哟!: 5 辛苦费 (「・ω・): 5
多谢![抱拳]  发表于 2018-3-13 16:46
发表于 2018-3-13 16:49:47 | 显示全部楼层
vardrag 发表于 2018-3-13 11:29
为了迎接五项赛,最近正在改造手上的系统

上面所谓的“经验”至多是去年的,搬家之后机器种类比较单一, ...


目前我明确知道的问题是 boincmgr 需要依赖一个图形库,回头这个我研究下怎么装这个库,然后发上来。
大婶可以把目前存在的问题汇总一下,我不太清楚都有哪些问题,测试也是个棘手的问题。
 楼主| 发表于 2018-3-13 17:19:02 | 显示全部楼层
本帖最后由 vardrag 于 2018-3-13 18:29 编辑
0xCAFEBABE 发表于 2018-3-13 16:49
目前我明确知道的问题是 boincmgr 需要依赖一个图形库,回头这个我研究下怎么装这个库,然后发上来。
大 ...

另一个机器也止步于299页,线程数并不相同,于是CPUX35不再成立,那个“project”指的是整个项目
现在坛里的双路还是1366和2011-1居多,299页的ZIKA也够双路2670算8、9天了(当年这种机器是囤4个系统的),基本满足要求

目前的问题主要就是mgr不能运行,其它倒没什么,一次得多少任务总觉得是看服务器心情,跟客户端没关系
一个项目没问题应该就没问题了,倒是可以呼叫那些跑很多项目的哥们来测试一下
@Biofluid 你要的Linux版本,很好用



您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

小黑屋|手机版|Archiver|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2019-12-11 21:35

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表