AmiBroker + RAMDisk: 让系统回测更快

Discussion in 'AmiBroker' started by espresso, Jul 22, 2010.

  1. 买PC这些东西最经济的方法是不要去买最新款,其实买什么都是这样,最新的最贵。:D

    至于集群,主要用途是为了高可用,高可靠,比如金融,电信等行业的系统都是集群系统,系统中一个节点有问题时可以把工作负载转到其他可用的节点上面继续进行,从用户角度来看就是一直不间断的。

    你想把很多便宜的PC集成一台机器来用的话,基本属于分布式计算的领域了。这需要另外的软件来支持,最主要的是问题,绝大多数软件(或应用)根本不具备把自己拆散放在不同机器上运行的能力,就连放在同一个机器中的多个CPU上面都不是一件简单的事。
     
  2. 一些海友里面提到使用内存硬盘不太可能让回测速度更快。
    (见这个帖子:用64位软件做系统测试和自动交易,大家对硬件有何建议?http://www.hylt.net/vb/showthread.php?t=28064

    这个周末我抽空做了个测试,的确证明使用内存硬盘也不能让回测明显加速

    去年我用笔记本电脑(2006年出的HP,1核,2G内存,具体配置不想麻烦去查了)在AMIBROKER运行了一个策略优化,运行了快7个小时。

    今天呢,还是使用相同的策略,相同版本的AMIBROKER(32 bit),但是运行在vmware server 2.0虚拟环境中的windows xp上面。而vmware运行在4核,8G内存的64位机上。第一次让winxp使用vmware默认的工作目录(在物理硬盘上面),结果运行时间是1小时58分。第二次则把winxp的工作目录转到内存硬盘上面,运行时间1小时55分。几乎可以说是没有差别。

    运行过程中我仔细关注了CPU, DISK, RAM的使用情况,结果是RAM和DISK没有任何出现瓶颈的迹象,CPU的使用率几乎100%。因为winxp在vmware里面只分配了一个CPU,所以无法知道AMIBROKER是否能同时使用多核(这个问题好像之前有帖子提到过,说在多核系统上面AMIBROKER只使用1个核)。

    这也证实了一些海友的观点,那就是相同回测时的瓶颈通常是在CPU,而不是内存和磁盘IO。

    测试时间由去年的近7个小时缩短到2小时以内,这主要还是由于CPU速度提高了很多。

    虽然这次测试证明了RAMDISK不能显著地加速回测,但我还是继续在vmware里面虚拟出来的winxp上面运行32位的AMIBROKER,这样可以很方便地从备份和恢复我的开发测试环境。只不过就省去把winxp工作目录定位到内存硬盘那一步。
     
  3. 版主,能不能帮我帖子标题改为“AmiBroker + RAMDisk: 让系统回测更快?” :D
     
  4. 抽空的话,我们可以搞搞超级计算机。。。
     
  5. 超级计算机我感兴趣~
    想怎么搞啊?
     
  6. cat

    cat


    espresso 能不能试一下完全不使用VMware,看看新机器上需要多少时间?
     
  7. 直接在64位上的速度应该会比在vmware上面运行winxp快一些,但是我觉得不会快太多,因为这次测试已经很明显地证明回测的时候瓶颈在CPU上面。

    我使用vmware的主要目的就是要把开发测试环境独立于我的PC主机。windows的系统大家都知道,各个组件间关联太多,装的东西越多越有可能造成一些莫名其妙的问题。
     
  8. cat

    cat

    我计划先专用一台电脑,下一步向你学习用vps。来避免那些莫名其妙的问题,:p
     
  9. 哈哈,用一台的话,全部东西装好之后做个备份,比如ghost镜像之类的,如果真有问题的话可以恢复。我就是比较烦装电脑,装一次得1,2天吧,装得东西太多了,很费时间。