Amber20 安装指南:使用 makefile 进行配置和安装

本指南详细介绍如何使用 makefile 安装 Amber20 软件,涵盖配置选项、安装步骤和常见错误处理。

1. 准备工作

  • 确保已安装必要的依赖项,如 C/C++ 编译器、MPI 库、CUDA(可选)等。
  • 下载并解压 Amber20 软件包。

2. 配置选项

在安装之前,需要根据你的系统配置和需求选择合适的配置选项。

SHELL=/bin/sh
AMBER=Amber20
CONFIG_FILE=config.h
CONFIG_COMMAND=./configure
PARALLEL_TOKEN=DMPI
CUDA_TOKEN=DCUDA
MIC_TOKEN=mmic
MIC2_TOKEN=DMIC2
MIC_OFFLOAD_TOKEN=DMIC_offload

include $(CONFIG_FILE)

.NOTPARALLEL:configured_cuda configured_parallel configured_serial

install: $(INSTALLTYPE)

主要配置选项:

  • INSTALLTYPE: 安装类型,可以是 'serial', 'parallel', 'cuda_serial', 'cuda_parallel', 'mic', 'mic_parallel', 'mic2', 'mic_offload'。
  • CONFIG_COMMAND: 配置命令,默认是 ./configure,用于生成 config.h 文件。
  • PARALLEL_TOKEN: 并行模式标记,默认是 DMPI,表示使用 MPI 进行并行计算。
  • CUDA_TOKEN: CUDA 模式标记,默认是 DCUDA,表示使用 CUDA 进行加速计算。
  • MIC_TOKEN: MIC 模式标记,默认是 mmic,表示使用 Intel MIC 进行加速计算。
  • MIC2_TOKEN: MIC2 模式标记,默认是 DMIC2,表示使用 Intel MIC2 进行加速计算。
  • MIC_OFFLOAD_TOKEN: MIC offload 模式标记,默认是 DMIC_offload,表示使用 Intel MIC offload 进行加速计算。

3. 执行安装

pmemd_only:
	cd pmemd && $(MAKE) $(INSTALLTYPE)

cray_serial: serial

cray_parallel: parallel

cray_openmp: openmp

serial: configured_serial
	@echo 'Starting installation of ${AMBER} (serial) at `date`'.
	cd pmemd && $(MAKE) install
	@echo ''
	@echo 'Installation of ${AMBER} (serial) is complete at `date`.'
	@echo ''

parallel: configured_parallel
	@echo 'Starting installation of ${AMBER} (parallel) at `date`'.
	cd ../AmberTools/src/etc && $(MAKE) parallel
	cd pmemd && $(MAKE) parallel
	@echo ''
	@echo 'Installation of ${AMBER} (parallel) is complete at `date`.'
	@echo ''

cuda_serial: configured_cuda
	@echo 'Starting installation of ${AMBER} (cuda serial) at `date`'.
	cd pmemd && $(MAKE) cuda_serial

cuda_parallel: configured_cuda configured_parallel
	@echo 'Starting installation of ${AMBER} (cuda parallel) at `date`'.
	cd ../AmberTools/src/etc && $(MAKE) parallel
	cd pmemd && $(MAKE) cuda_parallel

mic: configured_mic
	@echo 'Starting installation of ${AMBER} (mic_native) at `date`'.
	cd pmemd && $(MAKE) mic
	@echo ''
	@echo 'Installation of ${AMBER} (mic_native) is complete at `date`.'
	@echo ''

mic_parallel: configured_mic configured_parallel
	@echo 'Starting installation of ${AMBER} (parallel mic_native) at `date`'.
	cd ../AmberTools/src/etc && $(MAKE) parallel
	cd pmemd && $(MAKE) mic_parallel
	@echo ''
	@echo 'Installation of ${AMBER} (parallel mic_native) is complete at `date`.'
	@echo ''

mic2: configured_mic2
	@echo 'Starting installation of ${AMBER} (mic2) at `date`'.
	cd pmemd && $(MAKE) mic2
	@echo ''	
	@echo 'Installation of ${AMBER} (mic2) is complete at `date`.'
	@echo ''

mic_offload: configured_mic_offload
	@echo 'Starting installation of ${AMBER} (mic_offload) at `date`'.
	cd pmemd && $(MAKE) mic_offload
	@echo ''	
	@echo 'Installation of ${AMBER} (mic_offload) is complete at `date`.'
	@echo ''

configured:
	@(if [ ! -f $(CONFIG_FILE) ] ; then \
	    echo 'Error: $(CONFIG_COMMAND) must be executed before $(MAKE)!' ;\
	    exit 2 ;\
	    # $(CONFIG_COMMAND) ;\
	fi ;\
	)

configured_parallel: configured
	@(grep $(PARALLEL_TOKEN) $(CONFIG_FILE) > /dev/null || \
	    { echo 'Error: $(CONFIG_FILE) is not of type parallel!' ;\
	      echo '  Rerun $(CONFIG_COMMAND) and specify an MPI implementation.' ;\
	      exit 2 ;\
	    } ;\
	)

configured_serial: configured
	@(if grep $(PARALLEL_TOKEN) $(CONFIG_FILE) > /dev/null ; then \
	    echo 'Error: $(CONFIG_FILE) is of type parallel, not serial!' ;\
	    echo '  Rerun $(CONFIG_COMMAND) without -mpi.' ;\
	    exit 2 ;\
	fi ;\
	)
	@(if grep $(CUDA_TOKEN) $(CONFIG_FILE) > /dev/null ; then \
	    echo 'Error: $(CONFIG_FILE) is of type cuda, not serial!' ;\
	    echo '  Rerun $(CONFIG_COMMAND) without -cuda.' ;\
	    exit 2 ;\
	fi ;\
	)
	@(if grep $(MIC_TOKEN) $(CONFIG_FILE) > /dev/null ; then \
	    echo 'Error: $(CONFIG_FILE) is of type mic_native, not serial!' ;\
	    echo '  Rerun $(CONFIG_COMMAND) without -mic_native.' ;\
	    exit 2 ;\
	fi ;\
	)
	@(if grep $(MIC2_TOKEN) $(CONFIG_FILE) > /dev/null ; then \
	    echo 'Error: $(CONFIG_FILE) is of type mic2, not serial!' ;\
	    echo '  Rerun $(CONFIG_COMMAND) without -mic2.' ;\
	    exit 2 ;\
	fi ;\
	)
	@(if grep $(MIC_OFFLOAD_TOKEN) $(CONFIG_FILE) > /dev/null ; then \
	    echo 'Error: $(CONFIG_FILE) is of type mic_offload, not serial!' ;\
	    echo '  Rerun $(CONFIG_COMMAND) without -mic_offload.' ;\
	    exit 2 ;\
	fi ;\
	)

configured_cuda: configured
	@(grep $(CUDA_TOKEN) $(CONFIG_FILE) > /dev/null || \
		{ echo 'Error: $(CONFIG_FILE) is not of type cuda!' ;\
		 echo '  Rerun $(CONFIG_COMMAND) and specify a cuda implementation.' ;\
		 exit 2 ;\
		} ;\
	)

configured_mic: configured
	@(grep $(MIC_TOKEN) $(CONFIG_FILE) > /dev/null || \
	{ echo 'Error: $(CONFIG_FILE) is not of type mic_native!' ;\
		 echo '  Rerun $(CONFIG_COMMAND) with -mic_native flag.' ;\
		 exit 2 ;\
		} ;\
	)

configured_mic2: configured
	@(grep $(MIC2_TOKEN) $(CONFIG_FILE) > /dev/null || \
	{ echo 'Error: $(CONFIG_FILE) is not of type mic2!' ;\
		 echo '  Rerun $(CONFIG_COMMAND) with -mic2 flag.' ;\
		 exit 2 ;\
		} ;\
	)

configured_mic_offload: configured
	@(grep $(MIC_OFFLOAD_TOKEN) $(CONFIG_FILE) > /dev/null || \
	{ echo 'Error: $(CONFIG_FILE) is not of type mic_offload!' ;\
		 echo '  Rerun $(CONFIG_COMMAND) with -mic_offload flag.' ;\
		 exit 2 ;\
		} ;\
	)

netcdf_uninstall:
	-(cd ../AmberTools/src && $(MAKE) netcdf_uninstall)

clean::
	-(cd pmemd && $(MAKE) clean)

uninstall: uninstall.serial uninstall.parallel uninstall.cuda uninstall.mic netcdf_uninstall
	-(cd ../test && $(MAKE) clean)
	-/bin/rm -f ../test/numprocs config.h

superclean: uninstall

openmp:
	@echo 'No more OpenMP-enabled programs to install'

ompmpi:
	@echo 'No more OpenMP/MPI program to install'

uninstall.serial:	
	-(cd pmemd && $(MAKE) uninstall.serial)

uninstall.parallel:
	-(cd pmemd && $(MAKE) uninstall.parallel)

uninstall.cuda:
	-(cd pmemd && $(MAKE) uninstall.cuda)

uninstall.mic:
	-(cd pmemd && $(MAKE) uninstall.mic)


执行安装命令:

  • 安装所有程序: make install
  • 仅安装 pmemd 模块: make pmemd_only
  • 其他安装选项: 根据需要替换 install 目标名称,例如 make serialmake parallel 等。

4. 常见错误处理

  • 配置错误: 确保已执行 ./configure 命令并根据系统配置和需求选择合适的选项。
  • 依赖项错误: 检查是否已安装所有必要的依赖项。
  • 权限问题: 确保当前用户有足够的权限进行安装。

5. 安装完成

安装完成后,你可以通过运行 Amber20 的示例程序来验证安装是否成功。

6. 进一步学习

  • 阅读 Amber20 用户手册,了解更详细的安装和使用指南。
  • 访问 Amber 官方网站,获取最新版本的软件和相关文档。

希望本指南能帮助你顺利安装 Amber20 软件。如有任何疑问,请随时查阅相关文档或向技术支持人员寻求帮助。

Amber20 安装指南:使用 makefile 进行配置和安装

原文地址: http://www.cveoy.top/t/topic/fTSZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录