完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
x其实也不算我的原创,通过网上的资料整理而来,发现大家都麻烦的设置各个版本软件的环境变量,如果出现莫名其妙的问题很难知道问题到底出在哪,或者source了一个脚本发现自己需要的软件path根本不是对应的版本,有了modulefile,这样狗血的情况基本不会发生了,当然,免费软件偶尔也会有的小bug的。下面是软件英文介绍翻译过来的
软件介绍 Modules environment描述这是一个系统允许你很容易的在各个编译器好软件版本中转换,无论你使用什么shell,每次不需要手动设置环境变量,以下是作者感言: module 模块是数据库和一系列脚本的集合,简化shell的初始化,允许用户在工作过程中很容易的修改环境变量,module模块减少unix环境变量的维护难度,提供了一种机制通过一个方式动态修改应用环境。 适应对象 suse 工作站和所有其他server除了Chimaera and Athens,插一句,旁白:在rhel6环境工作ok 源代码http://modules.sourceforge.net/,旁白:网上可以搜到很多需要自己编译的软件版本,软件洒家也编译过,但是这个东西不是编译不了,是编译完死活也运行不起来,提示tcl无法初始化,试过各种tcl的版本,就在几乎绝望的时候为了安装方便为RHEL配置了centos的源,然后狗血的发现里面竟然有tcl,后来又在sourceforge发现了编译好的module filels,终于在一堆默认的路径下把module filels run 起来了,如果有大侠知道如何设置tcl环境那是极大的感谢。 Licence detAIlsGPL 用户手册 基本信息 机器可能有不同版本的fortran编译器,库,和其他安装的软件,其中的一部分又有很多版本,会越来越难为用户设置环境变量,特别是需要测试代码,不停的在各个版本间切换,module模块的目的是为终端用户减化该过程。 在很多机器上,module模块是统一的,有的机器上module是在用户login是加载的。旁白:.cshrc,.bashrc登场了 module filels使用以下方式工作,列出可以加载的模块 cen1001@sword:~$ module list Currently Loaded Modulefiles: 1) modules 3) ifort/8.0 5) nag/5.0 2) ifc 4) pgi/4.0-3(default) 你可以看到它加载了自己,modules,其他的基本都是编译器,旁白:洒家这里是大量的eda工具,好几好几屏。但是可能你不知道这个ifc是干啥的 cen1001@sword:~$ module whatis ifc ifc : Loads version 7 of the Intel Fortran compiler cen1001@sword:~$ module help ifc ----------- Module Specific Help for 'ifc' ------------------------ ifc - loads version 7 of the Intel Fortran compiler Thisadds /usr/local/intel/compiler70/ia32/bin to the PATH and sets the LM_LICENSE_FILE variable amongst others. ifc is a highly optimizing Fortran compiler for Intel chips. It relies on a licence server for compiling, but binaries may be run without a licence being available. There is a manpage, and both HTML and PDF documentation in /usr/local/intel/compiler70/doc . 其中一些modules可能有不同版本,你可以看每个module的版本cen1001@sword:~$ module avail ------------------------- /usr/local/Modules/versions -------------------------- 3.1.6 --------------------- /usr/local/Modules/3.1.6/modulefiles --------------------- fftw/2.1.5/ifc module-cvs null fftw/3.0.1 module-info pgi/4.0-3(default) ifc modules pgi/5.0-2 ifort/8.0 mpi/mpich/1.2.5/ifc pgi/5.1-6 mkl/6.0(default) mpi/mpich/1.2.5/pgi pgi/5.2-4 mkl/6.1 nag/5.0 use.own 如果你想看一个模块加载了什么东西cen1001@sword:~$ module display ifort ------------------------------------------------------------------- /usr/local/Modules/3.1.6/modulefiles/ifort/8.0: module-whatis Loads version 8.0 of the Intel Fortran compiler setenv LM_LICENSE_FILE 28518@por.ch.private.cam.ac.uk append-path PATH /usr/local/intel_fc_80/bin prepend-path LD_LIBRARY_PATH /usr/local/intel_fc_80/lib append-path MANPATH /usr/local/intel_fc_80/man ------------------------------------------------------------------ 有一些module和其他的软件冲突,比如你可以有一个pgi模块load环境变量,如果我在pgi load 5.2-4之前load了4.0-3,我获得了一个编译错误的信息,这时我需要卸载 4.0-3 cen1001@sword:~$ module unload pgi cen1001@sword:~$ module load pgi/5.2-或者更省事:cen1001@sword:~$ module swap pgi pgi/5.2-4 今天翻译不完了,明天继续 有些机器有特殊的module,这些module通过一个命令加载了一系列的模块,当进行并行运算,这些运算一般需要load一系列的兼容module, 这种方法能够保证依赖关系正确有效,此时该方法很有用。这些module称为环境或者编译器,这些特殊的module类似于位于你shell中的快捷方式 ,除了load module不做其他的处理。 下面删除了一段,使你的环境更加严谨,管理员注意事项dd 加载模块 module load ifort/32/9.0/032 proc ModulesHelp { } { puts "This is a dummy module; to see what it does type "module disp [module-info name ]"n" } module-whatis "This is a dummy module; type "module disp [module-info name ]" to see what it doesn"ok,该模块已经加载到你的环境里了。 下面结合ic eda说一下: 首先,你要安装好module file,在安装modulefile之前,要先安装tcl,当然推荐使用sourceforge编译好的modules,有依赖包就去下载,原版的module不是通常情况加载到PATH路径下的,所以which module可能找不到,这时试用一下moduleava,如果安装了会有显示。modules会使用一组文件夹表明所list的软件版本,比如 . .. codelink ius project specman verdi vipcat 在环境变量里使用module use ~/env/module_files,该module file下面的软件版本就会出现在module list里面,然后选择大家最喜欢的verdi看看里面有些什么,这里面就是实际的软件版本了 . 2006.07 2008.04 2009.01 2009.10 2010.04 2010.10 2011.10 .. 2007.07 2008.10 2009.07 2010.01 2010.07 2011.01 2012.04 2012.10 打开一个看看 #%Module1.0 # verdi and siloti 2012.10 version ###################################################################### # Set Verdi Path ###################################################################### set verdi_home /tools/novas/verdi-201210 setenv VERDI_HOME $verdi_home setenv SILOTI_HOME $verdi_home #set the SPS_BATCH_KILL environment variable to 1 when using the esa #utility in LSF environments setenv SPS_BATCH_KILL 1 # FSDB set up # Enable glitch and event sequence dumping setenv NOVAS_FSDB_ENV_MAX_GLTICH_NUM 0 setenv NOVAS_FSDB_ENV_DUMP_SEQ_NUM on prepend-path PATH $verdi_home/bin # Add FsdbDump ##--- for NC simulator -------# prepend-path LD_LIBRARY_PATH $verdi_home/share/PLI/IUS/LINUX64 ##--- for VCS simulator ----# prepend-path LD_LIBRARY_PATH $verdi_home/share/PLI/VCS/LINUX #dump fsdb on mult-core workstations setenv NOVAS_FSDB_PARALLEL 1 #internal optimization setenv FSDB_NCSIM_OPTIM 1 prepend-path NOVAS_LICENSE_FILE 28001@c0217 大概讲一下,#%Module1.0是表明该文件是module file使用的,不添加该文件版本不会出现在module list里面,下面是软件的说明,在下面就是大家熟悉的部分了,需要注意的是它有自己的语法结构,setenv的变量不能作为内部变量使用,像prepend-path是把该变量加在变量前面,当然它还有很多复杂的语法,大家需要自己研究,我也不会。 |
|
|
|
只有小组成员才能发言,加入小组>>
2009个成员聚集在这个小组
加入小组952 浏览 2 评论
12853 浏览 0 评论
4142 浏览 7 评论
2354 浏览 9 评论
2186 浏览 2 评论
471浏览 2评论
831浏览 2评论
952浏览 2评论
421浏览 1评论
660浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 23:49 , Processed in 0.969431 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号