cuda-meme-3.0.12

所属分类:生物医药技术
开发工具:Others
文件大小:2079KB
下载次数:6
上传日期:2012-12-11 15:05:40
上 传 者VincentJHY
说明:  此程序用于GPU实现的对生物科学中的motif discovery算法进行加速
(Accelerating Motif Discovery in Biological Sequences Using CUDA-enabled Graphics Processing Units)

文件列表:
cuda-meme-3.0.12\cuda-meme-3.0.12\esp2png.sh (606, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\beadstring.xsl (32589, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\bkg.jpg (1472, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\block-diagram.xsl (14274, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\cisml-to-gff.xsl (1788, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\cisml-to-html.xsl (1762, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\cisml-to-text.xsl (1520, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\cisml.css (265, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\fasta_db.csv (0, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\fimo-to-gff.xsl (1788, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\fimo-to-html.xsl (2711, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\fimo-to-text.xsl (1520, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\fimo.sh (3010, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\fimo.xsl (29937, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\fimo_config.xml (871, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\glam2.sh (2768, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\glam2scan.sh (2506, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\glam2scan_config.xml (884, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\glam2_config.xml (916, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\gomo.sh (5307, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\gomo.xsl (20300, 2010-12-17)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\gomo_config.xml (923, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\gomo_db.csv (0, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\help.gif (70, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\hmm-text.xsl (5338, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\logo.js.xsl (24682, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\mast-to-html.xsl (93786, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\mast.sh (2846, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\mast_config.xml (3006, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\mcast.sh (2279, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\mcast_config.xml (1525, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\meme-mast.sh (3458, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\meme.css.xsl (5292, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\meme.doc (34198, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\meme.xsl (79474, 2010-12-17)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\meme_config.xml (3461, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\motif_db.csv (0, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\prior1.plib (314, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\prior30.plib (9706, 2010-10-26)
cuda-meme-3.0.12\cuda-meme-3.0.12\etc\template.eps (11810, 2010-10-26)
... ...

CUDA-MEME v3.0 (also named MCUDA-MEME) is a motif discovery software based on MEME version 4.4.0, pragrammed using hybrid CUDA, OpenMP and MPI programming models by Liu Yongchao from School of Computer Engineering, Nanyang Technological University, Singapore. At present, MCUDA-MEME only supports the OOPS and ZOOPS models. It has been tested on a Tesla C1060 GPU Computing card, a GeForce GTX 280 graphics card, and a GPU cluster. This software have been added to the NVIDIA Tesla Bio Workbench (http://www.nvidia.com/object/meme_on_tesla.html). /***************************************************************************************************************** To use this software, please cite the journal paper: Yongchao Liu, Bertil Schmidt, Weiguo Liu, Douglas L. Maskell: "CUDA-MEME: Accelerating Motif Discovery in Biological Sequences Using CUDA-enabled Graphics Processing Units", Pattern Recognition Letters, 2010, 31(14): 2170 - 2177 *****************************************************************************************************************/ If having any qeustions or improvement about this software, please contact Liu Yongchao(liuy0039@ntu.edu.sg or nkcslyc@hotmail.com). Enjoy it. INTRODUCTION MCUDA-MEME enables users to use a single or multiple GPUs to accelerate motif finding. An MPI-based design provides the support for multi-GPUs. Two Makefiles are availabe in the directory. Makefile.gpu compiles and produces a binary running for a single GPU with no need of MPI library; Makefile.mgpu compiles and produces a binary for a GPU cluster, which requires the installtation of MPI library. I have tested that MCUDA-MEME works well with MPICH/MPICH2 MPI library. INSTALLATION 1. Preparation 1) Install CUDA 2.0 or higher SDK and Toolkits 2) Install MPICH/MPICH2. If using Makefile.gpu, do not need to install MPI library. 3) If the tool "convert" (installed in /usr/bin/) that changes EPS to PNG format is not installed in your system, you might need to download and install ImageMagick first (http://www.imagemagick.org/script/download.php). You can change the config.h file in the src directory to specify an alternative tool by changing the value of macro "CONVERT_PATH", and then recompiling the code. If ths converting tool does not exist, you need manually convert the ESP files in the output directory (default meme_out) to PNG files 2. download cuda-meme-vxxx.tar.gz; unzip the file; 3. modify the Makefile (in the src subdirectory) as per the compute capability of your CUDA-enabled graphics hardware Note: Before comping the program, please check the compute capability of your GPU device. If your GPU is a Fermi, change to "-arch sm_20"; if it is capability 1.3, change to "-arch sm_13"; if it is capability 1.2, change to "-arch sm_12"; and if it is capability 1.1, change to "-arch sm_11". That is very important for the CORRECT running of CUDA programs. 4. run make command 1) run "make -f Makefile.gpu" command to generate release "cuda-meme" in the directory; run "make -f Makefile.gpu clean" to clean up all generated objects and the executable binary 2) run "make -f Makefile.mgpu" command to generate release "mcuda-meme" in the directory; run "make -f Makefile.mgpu" command to clean up all generated objects and the executable binary 5. execute the application. 1) If the environment variable "MEME_ETC_DIR" is defined, CUDA-MEME searches resources from the directory specified by this environment varaible; otherwise, use the "etc" subdirectory in the current working directory. 2) When running the "cuda-meme", i.e without MPI support typical usages: ./cuda-meme dataset_file -dna -mod oops ./cuda-meme dataset_file -protein -mod oops -nmotifs 3 ./cuda-meme dataset_file -maxsize 500000 -dna -mod zoops -revcomp when more than one GPU devices are installed in your host, you can use option "-gpu_num" to specify the GPU used. The first GPU is indexed 0, and the second is 1 and so on. If not specifed, the first GPU is uses. You can refer to the print-out GPU information by CUDA-MEME to determine which GPU to use. ./cuda-meme dataset_file -maxsize 500000 -dna -mod zoops -revcomp -gpu_num 0 ./cuda-meme dataset_file -maxsize 500000 -dna -mod zoops -revcomp -gpu_num 1 For the EM step, it has been optimzied for multi-core CPUs using OpenMP. You can use option "-num_threads" to specify the total number of threads used for this step. If not specified, CUDA-MEME will automatically detect the number of CPU cores in the host. ./cuda-meme dataset_file -maxsize 500000 -dna -mod zoops -revcomp -gpu_num 0 -num_threads 4 ./cuda-meme dataset_file -maxsize 500000 -dna -mod zoops -revcomp -num_threads 4 3) When running the "mcuda-meme", i.e with MPI support typical usages: mpirun -np 2 ./mcuda-meme dataset_file -dna -mod zoops mpirun -machinefile hostfile -np 4 ./mcuda-meme dataset_file -dna -mod zoops when running on a GPU cluster, you must make sure that the number of MPI processes running on a node must not be more than the number of available GPU devices. This constraint can be ensured using a hostfile. An example of hostfile for MPICH is as follows, where each node contains two GPUs. compute-0-0:2 compute-0-1:2 compute-0-2:2 compute-0-3:2 Certainly, it is possible that some processes will be idle because they are not assigned any task. In this case, it will print out "-----Process # will be idel-----" on the scree for the process # that is not used. CUDA-MEME is able to assign GPU devices automatically to each MPI process. In this case, the option "-gpu_num" is disabled for "mcuda-meme". For the EM and "Get the log p-value of a weighted log-likelihood ratio" step, "mcuda-meme" uses two threads by default. Users can specify it according to the power of you multi-core CPUs. Note that when calculating the starting point, each MPI process has two threads: one for score computing, and the other for alignments. So, to achieve the highest performance, we recomand that the number of GPUs in a host <= the number of CPU cores / 2; 4) CUDA-MEME has defined two macros: MEM_LOW_BOUND_RATIO and MEM_HIGH_BOUND_RATIO in the file CudaMemeDefs.h for host memory consumption control. The alignment thread is enabled by default. Users can disable it by comment "NVCCFLAGS += -DUSE_ALIGN_THREAD" in the Makefiles (in the src directory). However, when using "NVCCFLAGS += -DUSE_THREAD_SYNC", it is extremely memory efficient for hosts. The default setting enables the USE_THREAD_SYNC macro (recommended). 5) CUDA-MEME is memory efficient for GPU devices. The peak GPU device memory is approximately equal to 480 * max_seq_length * 4 * 16. When max_seq_length exceeds ***KB, another slower but memory more efficient GPU implement will be used. In general, max_seq_length is less than 16K for Chip-seq sequences, so the peak GPU device memory is about 480MB. Because the hybrid computing feature of CUDA-MEME it consumes much host memory to store the intermeidate results. We recommend the size of host memory be more than 8GB to solve more than 2000 sequences of average 200 ~ 400 bps. High and low memory bounds are set using MEM_LOW_BOUND_RATIO and MEM_HIGH_BOUND_RATIO. This ensures that for much larger datasets, CUDA-MEME can work well with not too much host memory such as < 4GB. 6. If you have any questions, please contact Liu Yongchao. (liuy0039@ntu.edu.sg, or nkcslyc@hotmail.com). Thank you!

近期下载者

相关文件


收藏者