“SETI@home:优化程序”的版本间差异

来自中国分布式计算总站
跳转到导航 跳转到搜索
第93行: 第93行:
 
# 下载源代码:http://lunatics.kwsn.net/index.php?module=Downloads;catd=2  
 
# 下载源代码:http://lunatics.kwsn.net/index.php?module=Downloads;catd=2  
 
# 准备编译工具,你主要需要gcc,g++,cmake以及各个GNU lib(Windows下可以使用MinGW和CMake,根据报错log找需要的组件。)
 
# 准备编译工具,你主要需要gcc,g++,cmake以及各个GNU lib(Windows下可以使用MinGW和CMake,根据报错log找需要的组件。)
# 进行编译,使用g++或gcc时你可以加入参数'''-march=native -Os(或-O3,可能不稳定)'''自动利用CPU检测到的指令集并进行优化。对于clang编译器,'''-Oz'''或'''-O4(可能不稳定)'''会带来更高效率。
+
# 进行编译,使用g++或gcc时你可以加入参数'''-march=native -mtune=native -Os(或-O3,可能不稳定)'''自动利用CPU检测到的指令集并进行优化。对于clang编译器,'''-Oz'''或'''-O4(可能不稳定)'''会带来更高效率。

2014年1月9日 (四) 15:03的版本

←回到SETI@home


SETI优化程序是一系列在保证结果准确度的前提下利用Wikipedia:zh:CPU指令集加快运算速度的程序。 Lunatics Unified Installer 是由 Lunatics Team 制作的 SETI@home 优化安装程序。集成了 Astropulse、MultiBeam 的最新优化程序及 GPU 程序,傻瓜式安装,为用户提供向导式的安装优化计算程序,简化了之前手动安装优化程序的麻烦。

安装向导

警告: 目前的混合安装包只适合Windows系统。如果你使用其它操作系统,请至作者网站寻找。
小贴士: 为了节省资源,安装优化程序会关闭图形显示。如果你十分喜欢屏保画面或者经常利用屏保宣传此项目,请勿安装优化程序。

1. 访问 Lunatics Team 的优化程序下载页面,下载对应的 Lunatics' Unified Installer 版本。
如果找不到优化,可以尝试CPU优化作者arkayn的网站:http://www.arkayn.us/forum

(如不能下载,请联本站论坛管理员或版主)

2. 选择退出boinc manager并勾选“退出boinc manager 的同时停止运行科学计算程序”。然后运行 Lunatics Unified Installer,根据被安装计算机的特性选择有效的指令集选项。

版本信息

目前版本为 v0.41,仅支持 Windows 平台。目前的版本已经支持了自动探测CPU指令集,但是显卡型号需要自行选择。

具体的各优化程序版本:

  • Astropulse_r1797
    • 需要 CPU 支持 SSE 或者 SSE3 指令集,基于原r555/r557制作。
  • Multibeam(CPU AKv8c)
    • 需要 CPU 支持 SSE 或以上的指令集。
  • Multibeam(CUDA v41zc)
    • 需要支持 nVidia CUDA 的 GPU,驱动程序需要支持 CUDA 2.2 及版本在 185.85 以上(建议使用目前最新版本驱动),可用显存至少有 200~235 MB。原则上,这需要512MiB以上的显存;当然你也可以使用一个256MiB的显卡,为了尽量节省显存,你应该关闭一些显示效果,例如 Windows Vista 或以上版本的 Aero 效果(并且可以尝试降低颜色深度和刷新率,例如1024*768 16bit@60Hz)。这时,你应该时刻注意GPU-Z以及BOINC 管理器的窗口,以确认计算程序获得了足够的显存。显存不足的征兆有二:
  1. 对于BOINC:一个任务开始,运行极短时间(几秒钟)就换一个执行,原先的显示等待或者调度等待。
  2. 对于GPU-Z:传感器显示显存使用上升后立即下降。

如果你的尝试一再失败,请考虑不进行这个CUDA计算。

小贴士: 出现问题时可以尝试重启,一般会恢复。
  • AstroPulse NVidia (OpenCL)
    • 请参阅附带的ReadMe_AstroPulse_OpenCL_NV.txt文件。当留出一个CPU核心时,可以获得更高的处理效率。当然,在任务管理器中手动将该程序优先级提升至“高”也有类似的效果。
  • AstroPulse v5.05(ATI OpenCL r1843/Brook r1854)
    • Brook需要ATI HD2000以上的GPU,而OpenCL则需要ATI HD4000以上的GPU)。请阅读ReadMe_AstroPulse_OpenCL_ATI.txt或者ReadMe_AstroPulse_Brook.txt以获取更多信息。当留出一个CPU核心时,可以获得更高的处理效率。当然,在任务管理器中手动将该程序优先级提升至“高”也有类似的效果。
  • MultiBeam(ATI OpenCL r1843)
    • 需要ATI HD4000以上的GPU(建议使用ATI HD5000以上的GPU,对于7系和其他Tahiti核心的显卡建议使用4xxx的计算程序)。请阅读ReadMe_MultiBeam_OpenCL_ATI.txt以获取更多信息。当留出一个CPU核心时,可以获得更高的处理效率。当然,在任务管理器中手动将该程序优先级提升至“高”也有类似的效果。

关于CUDA程序

v0.41 版本的综合安装包内提供了多种CUDA程序,选择判据如下:

  1. CUDA 2.3(最低驱动190.38):仅用于老显卡,几乎是万能的。推荐用于8xxx 系列,9xxx 系列,GTX 200 系列等不支持费米/开普勒架构的小显存版本(256MiB)显卡。不兼容费米/开普勒架构。
  2. CUDA 3.2(最低驱动263.06):“存货”,完全万能,支持费米/开普勒架构。推荐用于8xxx 系列,9xxx 系列,GTX 200 系列等显卡的较大显存版本(300+MiB)。
  3. CUDA 4.2(最低驱动301.48):推荐用于费米架构(GTX 4xx~GTX 5xx),可以获得极大的性能提升。
  4. CUDA 5.0(最低驱动306.23):推荐用于开普勒架构(GTX 6xx+),可以获得极大的性能提升。

在优化程序下载网页也提供这种CUDA优化:

  1. CUDA 2.2(最低驱动185.85):“老存货”,为无法更新驱动的用户设计。不兼容费米/开普勒架构。

CUDA程序设置

x41zc或以上的CUDA程序在其安装目录会创建一个mbcuda.cfg,用于自定义程序。(用记事本或类似程序打开编辑)

参数

  • processpriority 进程优先级,有'belownormal' (默认), 'normal', 'abovenormal'(推荐), or 'high'(刷分用)四个选项。
  • pfblockspersm 每个处理器的搜索运行数量,取值1~16,CUDA3.2或更低版本默认为1,CUDA4.0默认为4,高端卡建议适当加大。
  • pfperiodsperlaunch 每次内核启动后信号搜索的最大周期,取值1~1000,默认为100

文件中的分号“;”会将内容加载为注释(即不用),删除后就会激活。

对于CUDA3.2以上的程序,允许自定义每个GPU的参数,其中[mbcuda]表示通用设置,形如[busxsloty]表示以下的一段是X控制器Y槽上面的显卡。

v0.40下载

v0.40 版本未能检测用户计算机的 CPU 所支持的指令集资料,并在安装时对未支持的指令集选项禁止。如果安装了不支持的指令集的优化程序,会导致计算错误。因此需要用户在安装前确认被安装的计算机的 CPU 所支持的指令集信息。

Lunatics Unified Installer 安装时的选项卡,用户可根据被安装计算机的特性选择有效的指令集选项。

查看准备安装优化程序的计算机的 CPU 所支持的指令集信息。

其他

附录I:使用Intel显卡计算

警告: 由于计算程序从测试项目提取,且存在微小的版本不同问题,不排除有验证无效或计算错误(爆包)的可能。

用法:

  1. 加入SETI@home beta项目,使用支持OpenCL的Intel GPU下载一个WU。(需要BOINC7.0+)
  2. 进入BOINC的数据目录(一般在AppData一类的位置),进入Project子目录,找到带有Intel GPU字样的程序并复制到SETI@home的目录。
  3. 尝试改写app_info.xml(如果你先安装了优化程序的话):

代码

警告: 目前可能存在一个问题,即优化程序会删除一些其他的计算程序,可以自己尝试删除该特性。
小贴士: 已知优化程序会在Windows的运行中新建一个命令,这可能是问题的突破口。
这样就完成了!

问题处理

为了防止你的程序被删除,可以尝试事先复制走优化程序(不需要目录下其他文件夹,只要孤立的文件——必须包括app_info),卸载优化再放回。

附录II:进一步提高处理效率

GPU部分:请阅读GPU 计算#性能考量

自行编译程序

  1. 下载源代码:http://lunatics.kwsn.net/index.php?module=Downloads;catd=2
  2. 准备编译工具,你主要需要gcc,g++,cmake以及各个GNU lib(Windows下可以使用MinGW和CMake,根据报错log找需要的组件。)
  3. 进行编译,使用g++或gcc时你可以加入参数-march=native -mtune=native -Os(或-O3,可能不稳定)自动利用CPU检测到的指令集并进行优化。对于clang编译器,-Oz-O4(可能不稳定)会带来更高效率。