第一个问题:目录结构
目录结构在整个蛋白质折叠程序框架中起着重要的作用。我们设计的目标是:我们的程序代码、程序数据以及程序运算完后的结果文件的放置位置对于平台来说是完全透明的,唯一有必要知道这一结构的角色便是用户。下文将介绍如何设计目录结构才能使得我们这一目标得以实现。
Worker端的目录结构
根据woker端需要完成的任务,主要需要以下几个目录:
一. 程序目录:主要存放的是NAMD程序、tcl脚本语言的的动态链接库、JNI的动态链库以及java运行文件。这里面是否有必要对这些文件放置的位置进一步细化,需要我们进行研究。
二.数据文件目录:该目录按照程序的要求应该分为两大部分计算所需要的数据文件(包括pdb,psf和restart文件)和计算所需要的参数文件(温度的设定目前设计在woker端来实现),但是该目录里面必须保留一些以前计算的信息以便以后的使用。因此,我们首先将目录按照时间进行分类,再在各个目录里面建立参数目录和数据目录。
三.结果文件目录:该目录里面存放计算结果。每个结果都必须自己建立一个目录,目录名应当跟数据文件的目录相对应起来,以示是该数据文件计算的结果。
主程序端的目录结构
主程序主要存放的是中间结果的数据,而且数据库建立的时候就已经有了初步的设计方案,因此我们只需要在原来的目录里面建立相应的目录。蛋白质折叠比较特殊所以需要的,重点放在数据的中间结果,当然计算的最后结果也需要特殊的考虑。
在temp目录里面要建立用户(提交任务的人)的目录,计算的中间结果放在其中。在前期的调研工作中,我们使用了工作池的概念,我们在这里也需要对这个概念进行实施。我们按照时间来建立工作池,也就是说结果返回时,我们将结果放到时间最大的工作池里面。
被选中的中间结果实际上既我们最终结果的一部分也是我们下一步运算的基础(数据文件),因此需要保存下来。我们以选中的数据为基础生成新的任务!!!