计算化学公社

标题: Multiwfn已经移植到gfortran上,RPM包也已构建好,欢迎试用! [打印本页]

作者
Author:
stecue    时间: 2017-4-29 06:54
标题: Multiwfn已经移植到gfortran上,RPM包也已构建好,欢迎试用!
本帖最后由 stecue 于 2017-5-1 05:39 编辑

如这个回帖所述(http://bbs.keinsci.com/forum.php ... 502&page=1#pid44041),我在github上开了一个项目,把Multiwfn的非GUI部分移植到gFortran。现在移植已经完成了(并且加入了OMP_NUM_THREADS补丁,可以用环境变量OMP_NUM_THREADS控制并行线程数)。下载主页:

https://github.com/stecue/gMultiwfn/releases

为了照顾国际友人,安装方法写在https://github.com/stecue/gMultiwfn/releases。简单说来,由于采用了标准的GNU Autotools构建源码包,只要下载,然后解压,然后./configure && make -j8 && make install就安装到/usr/local/bin/Multiwfn了。你如果熟悉configure脚本的话可以加各种参数。比如,为了不“污染”源文件树,可以在源码包下面建立一个专门的编译文件夹,并安装二进制文件到~/local,就是

  1. mkdir build && cd build && ../configure --prefix=$HOME/local && make -j8 && make install
复制代码


上面make -j8的意思是用8进程编译安装。如果是8核16线程的CPU,改成 make -j16 可以加快编译速度。configure脚本会自动检测可用的编译器,如果有ifort会优先使用,否则使用gfortran。

我自己测试的结果是gfortran版跟ifort原版的计算结果没什么区别(虽然慢大概30%……Intel 编译器在数值计算方面还是功力深厚)。但是Multiwfn博大精深,我用到的功能毕竟很少,欢迎大家充分试用、反馈、提交补丁或者特性要求哈。我目前正在给它打(二进制)包,首先支持OpenSUS/CentOS/RedHat等RPM系发行版。一旦测试、打包完成之后,大家就可以直接 zypper 或者 yum 或者 apt-get 安装 Multiwfn 啦。

---(五一劳动节新增)RPM的分割线---
适用于openSUSE/CentOS/Fedora的RPM包已构建成功,下载页面
https://software.opensuse.org//d ... p;package=gMultiwfn
[/url]
点击后应该可以看到如下图的页面,
(, 下载次数 Times of downloads: 50)
选择相应的发行版,即可直接下载rpm或者根据安装步骤添加软件源。
作者
Author:
rtransformation    时间: 2017-4-29 09:25
哈哈,Intel还是厉害
作者
Author:
greatzdk    时间: 2017-4-29 10:42
感觉意义不大
作者
Author:
stecue    时间: 2017-4-29 11:12
greatzdk 发表于 2017-4-29 10:42
感觉意义不大

不与gfotran兼容就无法进入各大distro发行版仓库。Multiwfn虽然是GPL-2.0,ifort可不是。

我给openSUSE打过几个包,在个人源上支持OpenSUSE/Fedora/CentOS没问题,推到OpenSUSE的Science扩展源也问题不大。推到官方默认OSS源也有可能。敬请期待!
作者
Author:
wbn    时间: 2017-4-29 11:32
greatzdk 发表于 2017-4-29 10:42
感觉意义不大

我很喜欢这个计划,在Linux上使用multiwfn一直非常难受,主要是GUI的部分安装非常麻烦,我一般宁愿把我要的功能源码拷出来重新编译也不愿意安装软件。而且ifort虽然对学生免费,但是想要获取也是比较麻烦的,还要时不时面对liscence过期的问题。如果能用gfortran 编译软件甚至yum来安装是极大的方便。
作者
Author:
stecue    时间: 2017-4-29 13:00
wbn 发表于 2017-4-29 11:32
我很喜欢这个计划,在Linux上使用multiwfn一直非常难受,主要是GUI的部分安装非常麻烦,我一般宁愿把我要 ...

而且大家都可以方便的贡献代码或者提feature request哈。sob 兄觉得好可以集成回主线的话,也只需要diff/patch一下就好了。开源的奥义就是众人拾柴火焰高;假以时日,Multiwfn直接包含了不少量化计算功能、从而部分代替Gaussian也未可知嘛。
作者
Author:
smutao    时间: 2017-4-30 09:40
呵呵
作者
Author:
stecue    时间: 2017-4-30 09:57
smutao 发表于 2017-4-30 09:40
呵呵

嗯?
作者
Author:
sobereva    时间: 2017-4-30 10:30
wbn 发表于 2017-4-29 11:32
我很喜欢这个计划,在Linux上使用multiwfn一直非常难受,主要是GUI的部分安装非常麻烦,我一般宁愿把我要 ...


你直接用Multiwfn官网上的noGUI版就完了,完全不依赖于图形库
源代码包里也有把完整版简化成noGUI的脚本

作者
Author:
stecue    时间: 2017-5-1 05:41
wbn 发表于 2017-4-29 11:32
我很喜欢这个计划,在Linux上使用multiwfn一直非常难受,主要是GUI的部分安装非常麻烦,我一般宁愿把我要 ...

RPM已构建完成!支持CentOS/Fedora/openSUSE,访问以下页面就可以直接安装gMultiwfn
https://software.opensuse.org//d ... p;package=gMultiwfn
作者
Author:
sobereva    时间: 2017-5-1 09:26
stecue 发表于 2017-5-1 05:41
RPM已构建完成!支持CentOS/Fedora/openSUSE,访问以下页面就可以直接安装gMultiwfn
https://softw ...

试了能用,但是貌似没有带settings.ini?
作者
Author:
stecue    时间: 2017-5-1 11:55
sobereva 发表于 2017-5-1 09:26
试了能用,但是貌似没有带settings.ini?

嗯,现在没有带,主要是用到了automake,settings.ini不是源代码的一部分,自动生成tarball的时候就不包括在内。如何设置我得再研究一下。另外,不带ini的默认值理论上应该和自带的settings.ini一样吧?

Linux程序一般在第一次运行时在~/.config/或者$HOME目录下生成一个自动配置文件。我可以写个脚本wrap一下,export Multiwfnpath=$HOME/.config/Multiwfn 并检查自动配置文件。这是很多Linux软件的常规做法。这种wrapper脚本很容易用automake打包起来,很快就可以弄好。
作者
Author:
stecue    时间: 2017-5-1 14:10
sobereva 发表于 2017-5-1 09:26
试了能用,但是貌似没有带settings.ini?

RPM源的wrapper已弄好。github上还得配合configure脚本捣鼓一下,要不然没法自定义安装路径……
作者
Author:
sobereva    时间: 2017-5-1 18:23
stecue 发表于 2017-5-1 11:55
嗯,现在没有带,主要是用到了automake,settings.ini不是源代码的一部分,自动生成tarball的时候就不包 ...


是的,默认值就是自带的settings.ini里的值
gMultiwfn我已经加入到Multiwfn主页的download页面了

作者
Author:
stecue    时间: 2017-5-2 11:30
sobereva 发表于 2017-5-1 18:23
是的,默认值就是自带的settings.ini里的值
gMultiwfn我已经加入到Multiwfn主页的download页面了

Thanks! github上的脚本也修好了,源码编译的启动脚本也会自动生成默认的settings.ini。

现在github上的master分支与3.4 (dev)同步,以后基本上只要diff/patch一下就可以跟进官方源码了,维护起来应该还挺方便。
作者
Author:
Warm_Cloud    时间: 2017-5-6 09:48
曾经做过deb包。。。。
作者
Author:
stecue    时间: 2017-5-17 01:11
github上的master branch已更新到20170509的版本(Release分支仍然是3.3.9)。需要dev二进制版本的请直接加这个源
https://software.opensuse.org//d ... e&package=gMultiwfn
作者
Author:
hakuna    时间: 2017-5-19 17:03
接国际的轨了
作者
Author:
stecue    时间: 2017-5-23 05:50
github 上的 master branch 已更新到 20170522 的版本。sob兄的noGUI脚本没删掉otherfunction2.f90的“call drawdomaingui”,大家直接从源码编译可能不成。需要 dev noGUI 二进制版本的可以直接加这个源 https://software.opensuse.org//d ... p;package=gMultiwfn
作者
Author:
sobereva    时间: 2017-5-23 13:37
stecue 发表于 2017-5-23 05:50
github 上的 master branch 已更新到 20170522 的版本。sob兄的noGUI脚本没 ...

谢谢提醒
作者
Author:
smutao    时间: 2017-5-27 02:07
greatzdk 发表于 2017-4-29 10:42
感觉意义不大

没错。。。。。。。。。
作者
Author:
stecue    时间: 2017-6-20 00:12
Github上的master分支已经更新到3.4。二进制版本OBS编译的时候一直有warning,虽然可以自用但是通不过OBS的检查无法发布。好像只是一个小问题,等我再hack一下哈。
作者
Author:
stecue    时间: 2017-6-20 00:45
Warm_Cloud 发表于 2017-5-6 09:48
曾经做过deb包。。。。

是直接用ifort编译了之后改成deb包的吗?deb包跟RPM差别太大,我研究了一下还没搞明白……
作者
Author:
stecue    时间: 2017-6-20 01:03
smutao 发表于 2017-5-27 02:07
没错。。。。。。。。。

嗯,我承认我有gnu强迫症。你是来劝我不要花太多精力在这上面吗?实际上我主要靠脚本跟踪更新,并不费多少时间。
作者
Author:
stecue    时间: 2017-6-20 01:54
3.4的二进制包已搞定!Sob兄 otherfunc2.f90 中“c210tmp(1:istart+6)=" " !Clean other information so that the data can be read in free format”这一行(大约在1257行附近)疑似数组越界了? c210tmp 应该是只有210个字符长……
作者
Author:
sobereva    时间: 2017-6-20 03:19
stecue 发表于 2017-6-20 01:54
3.4的二进制包已搞定!Sob兄 otherfunc2.f90 中“c210tmp(1:istart+6)=" " !Clean other information so th ...


实际当中倒不会出现越界错误,如果从逻辑上比较讲究的话,就改成do istart=1,204
作者
Author:
stecue    时间: 2017-6-20 06:14
sobereva 发表于 2017-6-20 03:19
实际当中倒不会出现越界错误,如果从逻辑上比较讲究的话,就改成do istart=1,204

嗯,能出错的话也就是遇到奇葩输入文件,我能想到的也就是无意间手动改了高斯的输出什么的。
作者
Author:
Warm_Cloud    时间: 2017-6-20 19:41
stecue 发表于 2017-6-20 00:45
是直接用ifort编译了之后改成deb包的吗?deb包跟RPM差别太大,我研究了一下还没搞明白……

是的。
作者
Author:
stecue    时间: 2017-6-21 02:58
Warm_Cloud 发表于 2017-6-20 19:41
是的。

OBS必须要可以直接编译的。不过现在编译倒是不成问题了……




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3