|
以下所写的是一个关于上传RESULT时也同时上传一些自定义信息的讨论。本人开始分布计算没几天,闲暇之余也喜好对电脑七整八整,可能所属内容已经在很久以前就讨论过了,如果那样,能否也告诉我一些有趣的技巧?
SETI@HOME网上有一些优化程序,这些优化程序能够提高WU的计算速度。或许有人已经发现,使用这些优化程序上传结果以后,会随着结果包,同时上传一些附加的信息,一般为优化程序作者的信息。下面是一个信息显示实例,这是来自于http://www.guntec.de/Crunch3r/setix86.html和http://www.guntec.de/Crunch3r/boincx86.html网站优化程序的附加信息。
Windows optimized S@H application by Crunch3r
Improvements by Tetsuji Maverick Rai, Hans Dorn, Harold Naparst, Ned Slider, Crunch3r, trux,...
$Using cache implementation by Hans Dorn $
$Build: Windows SSE3 Intel Pentium4 V2.10 by Crunch3r $
$Rev: 166.10 Windows SSE3 Intel Pentium4 V2.10 $
$Internal: +16SMA;+PA;+IA;+EFL-P4P $
Datapoints: 1048576
cache_miss: 53
这些信息会显示在结果包的详细信息网页的stderr out一栏中。
从stderr out名称大概可以猜出,这些信息是作为程序的出错信息来添加到结果包的信息中。这样,就有了一个添加自定义信息的途径。只要把优化程序找到这些信息,然后用我们自定义的信息替换,就能够让我们自己的信息随着结果包显示在官方的网页上。
这个替换过程不需要编程技术,只需要会用一个编辑软件就行了,一个能够编辑二进制代码的软件,我用的是ULTRAEDIT,其它也有很多类似的软件。
还是以上面的信息为例。
1。把优化过的SETI运算器主程序setiathome_4.11_windows_intelx86.exe备份两份出来,一个用来修改,另一个作为将来恢复使用。建议单独备份到一个非BOINC的文件夹,以后的修改就是针对这个备份来操作。
2。用ULTRAEDIT以二进制的方式打开这个备份,查找字符串Windows optimized,很快的就能找到符合的字符串,这就是我们需要替换的地方。
3。后面就可以用自己的字符串替换原来的字符串了,字符串最好是英文。每行字符串以十六进制代码0A为结尾。不过需要注意的是,最好不要改变原来字符串的长度,因为后果未知,也就是说,自定义输入的字符串最好在0A以前结束,如果自定义的字符串比原来的字符串短,可以用空格补足,空格的十六进制代码为20。
4。原来信息中的1,3,4,5,6行是在一起的,所以只要搜索到第一行的位置,重复步骤3,就可以将原来信息中的1,3,4,5,6行替换。
5。第2行的替换。第二行与其他行并不在同一个位置,所以,就要重新搜索。在ULTRAEDIT中以Improvements by Tetsuji作为关键字从文件头开始搜索。很快就能找到位置。重复步骤3,就能完成替换。
6。后面的Datapoints和cache_miss以及后面的字符串是动态显示,我没有修改。
setiathome_4.11_windows_intelx86.exe程序中的修改过程就是这样,然后需要把这个修改后的程序COPY回原来的路径。这里需要强调一点的是COPY以前一定要清空WU工作区,并且设置NO NEW WORKS,否则的话,可能会产生很多出错的结果包,我就在这个过程中没有注意,连续产生了13个错误的结果包,结果在官网的结果列表里面红红一片。
完成以后,运行BOINC,等到WU来了以后,就可以在BOINC安装路径下的SLOT文件夹里面的STDERR.TXT文件中查看替换后的字符串。如果不正确,就重复上述的步骤。
等到WU计算完毕,结果上传后,就能在RUSULT信息里面查看到自定义的字符串。
不同的SETI优化程序可能显示的信息不同,要对应具体信息操作。
以上为整个过程,纯属娱乐。因为可能会因为一些误操作出现错误计算,所以只建议有兴趣并且不介意可能出现错误结果的朋友试试。
附加说明一下,我自己作为测试用的字符串是一个网络上流传的笑话。^_^
One car come
One car go
Two car peng peng
One car Die
[ Last edited by hellstorm on 2006-3-13 at 13:12 ] |
|