我真傻,真的

      十二点从实验室出来,走回宿舍,发现自己肚子很饿。于是转身出门去买吃的,发现最后一块饼已经被别人吞下去了一半……
      于是趁着天黑一路小跑去永和豆浆。天黑,冷飕飕的,什么都看不见。
      要了糯米鸡和咸豆浆,觉得实在是太饿了,又加了一笼蒸饺。
      糯米鸡和一盆豆浆很快就端了上来,也很快就吃完了。可是等到豆浆都要凉了,蒸饺却还没上来。
      等到吃下去的东西都消化得差不多了,蒸饺终于端上来了。
      从店里出来已经十二点半了,走回去估计大爷又要被我吵醒了。于是半路上决定去实验室睡。

Folding@Home

       对于一个从事理论化学或者计算化学“研究”工作的人来说,Folding@Home的确是一个不错的玩具。
      最早接触FAH是在高中时候写一篇关于分布式计算的乌七八糟的文章。那个时候算的叫一个慢啊。。。
      对于FAH就不做介绍了,大家可以到http://folding.stanford.edu/Chinese/Main进行更详细的了解,以及http://fahwiki.net/,更为详细深入的介绍。
      严格来说,FAH并不是一个理论化学或者计算化学软件包,更确切地说,FAH是一个分布式计算平台,类似于BOINC;真正的算法部分则采用了GROMACS分子动力学软件包和AMBER分子力场。之前还有基于Tinker和QMD量子化学的计算程序,但是现在都不采用了。不妨从整个计算过程来探讨这个问题。主程序fah6本身并不负责计算,准确来说fah6只是一个调度程序,负责收发数据、平衡负载以及进程管理。fah6有一个重要的功能,就是根据当前运行的平台下载相应的计算内核。举例来说,如果是系统采用多核心处理器或者多处理器,fah6就会自动下载FahCore_a2作为计算核心。FahCore_a2是一个采用了MPI实现并行的计算内核,以GROMACS作为计算方法。类似的内核还有很多,在http://fahwiki.net/index.php/Cores可以看到一份完整的列表,例如FahCore_11是采用Nvidia CUDA技术使用GPU运行的内核。
      我们可以看一眼FAH网站上的统计数据(http://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats),截止当地时间2008年12月24日05:08:54。

OS Type

Current TFLOPS*

Active CPUs

Total CPUs

Windows

243

255033

2349894

Mac OS X/PowerPC

5

6582

123083

Mac OS X/Intel

28

8872

72696

Linux

45

26181

350540

ATI GPU

993

9031

23771

NVIDIA GPU

1753

15932

57854

PLAYSTATION®3

1553

55076

707720

Total

4620

376707

3685558

    

我们可以计算一下X86处理器(我们假设几乎所有Windows系统都是基于X86构架的处理器)和GPU在进行这样的分子动力学计算时的平均效率:
      X86平台计算效率:0.00102688 TFLOPS/CPU (其中Mac OS X/Intel平台达到了0.0031560 TFLOPS)
      GPU平台计算效率:0.110003 TFLOPS(NVIDIA:0.110030 TFLOPS;ATI:0.109955 TFLOPS)
      二者相差:107倍

      这个数据是软件的计算核心反馈的真实数据,而非峰值或理论值。因此NVIDIA官方所声称的250倍性能应该并非虚言。根据个人经验,分子力学以及分子动力学中大量的矢量运算很可能是造成这种性能差异的主要原因。

     最后说说Macintosh平台上的安装吧。推荐去http://www.stanford.edu/group/pandegroup/folding/release/FAH6.02-OSX-Intel-Console.tgz下载Console版本(http://www.stanford.edu/group/pandegroup/folding/console-userguide.html 有一份比较详细的参数说明),手动建立~/Library/Folding@home目录,将fah6和mpiexec解压缩至该目录下,然后:

Armadillo:Folding@home Armadillo$ cd ~/Library/Folding@home/
Armadillo:Folding@home Armadillo$ ./fah6 -configonly -smp

      接下来根据自己需要进行一些设置。为了使fah6能够自动运行,我们需要将启动脚本加入launchd中:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnvironmentVariables</key>
    <dict>
        <key>HOME</key>
        <string>/Users/Armadillo</string>
    </dict>
    <key>Label</key>
    <string>edu.stanford.folding.client</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/Armadillo/Library/Folding@home/fah6</string>
        <string>-smp</string>
        <string>-verbosity</string>
        <string>9</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceDescription</key>
    <string>Folding@home client</string>
    <key>Umask</key>
    <integer>22</integer>
    <key>UserName</key>
    <string>Armadillo</string>
</dict>
</plist>

      将上面这些文本保存为/Library/LaunchDaemons/Folding@home.plist,你也可以在ProgramArguments中加入更多参数,但是注意不得包含空格,分成两个string即可。接下来就可以启动FAH了:

launchctl load -w /Library/LaunchDaemons/Folding@home.plist

      如果执行ps -ef|grep fh6以及ps -ef|grep FahCore能看到相应的进程就证明已经开始计算了。可以通过执行fah6 -queueinfo查看队列情况,在unitinfo.txt中查看计算进度,在FAHlog.txt中查看输出信息。相应的计算log在work文件夹下。

221的花猫终于生啦

标  题: 221楼的新生命!

发信站: 瀚海星云 (2008年12月22日10:11:15 星期一), 站内信件 WWWPOST
221楼的童鞋们,这只猫猫大家都不陌生吧。听说昨天从4点半生到8点多,一共产下了5只可爱的小猫猫。可惜我没有亲眼目睹全过程,昨晚跟室友拍了些图片,技术不行,大家凑合看,还有段视频放在202.38.64.22上了,有兴趣可以去下。
PS:我们是不是该考虑这些小猫的去向了呢?

大学做的最后一个实验

使用Raney Nickle氢化顺丁烯二酸。
自己做的镍粉活性很高,遇空气就会燃烧……

第一个面试

密歇根州立,一月六号。

报分

GRE Subject Chemistry 830 86%