如何使用 gfortran-10 构建 MPICH?

2023-12-06

TL;DR

如何使用 gfortran-10、gcc-10 和 g++-10 构建 MPICH?

背景

我想用 grortran-10 构建 MPICH以便能够使用最新的 MPI 绑定,但我还没能做到。尝试在 Ubuntu 上通过 apt 安装 MPICH 总是使用 gfortran 7.5.0(与 gcc 和 g++ 相同的版本),即使我安装了最新版本的 gfortran。为了清楚起见,这是我当前的 MPICH 和 gfortran 配置(通过 apt 安装):

pavel@pavel:~$ mpiexec --version
HYDRA build details:
    Version:                                 3.3a2
    Release Date:                            Sun Nov 13 09:12:11 MST 2016
    CC:                              gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro 
    CXX:                             g++   -Wl,-Bsymbolic-functions -Wl,-z,relro 
    F77:                             gfortran  -Wl,-Bsymbolic-functions -Wl,-z,relro 
    F90:                             gfortran  -Wl,-Bsymbolic-functions -Wl,-z,relro 
    Configure options:                       '--disable-option-checking' '--prefix=/usr' '--build=x86_64-linux-gnu' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-silent-rules' '--libdir=${prefix}/lib/x86_64-linux-gnu' '--libexecdir=${prefix}/lib/x86_64-linux-gnu' '--disable-maintainer-mode' '--disable-dependency-tracking' '--with-libfabric' '--enable-shared' '--enable-fortran=all' '--disable-rpath' '--disable-wrapper-rpath' '--sysconfdir=/etc/mpich' '--libdir=/usr/lib/x86_64-linux-gnu' '--includedir=/usr/include/mpich' '--docdir=/usr/share/doc/mpich' '--with-hwloc-prefix=system' '--enable-checkpointing' '--with-hydra-ckpointlib=blcr' 'CPPFLAGS= -Wdate-time -D_FORTIFY_SOURCE=2 -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpl/include -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpl/include -I/build/mpich-O9at2o/mpich-3.3~a2/src/openpa/src -I/build/mpich-O9at2o/mpich-3.3~a2/src/openpa/src -D_REENTRANT -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpi/romio/include' 'CFLAGS= -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security -O2' 'CXXFLAGS= -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security -O2' 'FFLAGS= -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -O2' 'FCFLAGS= -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -O2' 'build_alias=x86_64-linux-gnu' 'MPICHLIB_CFLAGS=-g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security' 'MPICHLIB_CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'MPICHLIB_CXXFLAGS=-g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security' 'MPICHLIB_FFLAGS=-g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong' 'MPICHLIB_FCFLAGS=-g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'FC=gfortran' 'F77=gfortran' 'MPILIBNAME=mpich' '--cache-file=/dev/null' '--srcdir=.' 'CC=gcc' 'LIBS=' 'MPLLIBNAME=mpl'
    Process Manager:                         pmi
    Launchers available:                     ssh rsh fork slurm ll lsf sge manual persist
    Topology libraries available:            hwloc
    Resource management kernels available:   user slurm ll lsf sge pbs cobalt
    Checkpointing libraries available:       blcr
    Demux engines available:                 poll select
pavel@pavel:~$ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 

对于 gcc 和 g++,在所有相关方面都与 gfortran 相同。


我遵循了弗拉基米尔在评论中给我的建议,一切都很顺利。这个网站提供了所有必要的指导方针。只需要处理一些小问题。在我能够创造之前./configure文件中,系统提示我安装一些缺少的自动工具,这只需使用apt. Once ./configure文件已准备好,我传递了与以下内容基本相同的配置apt最初安装 MPICH (参见长列表原始问题),'FC = gfortran-10' 'CC = gcc-10' 'CXX = g++-10'替换'FC = gfortran' 'CC = gcc' 'CXX = g++'。还必须处理几个提示(主要是在配置中添加一些内容或安装缺少的软件包,使用 Synaptic 软件包管理器可以轻松完成)。完成所有步骤后,F08 绑定已成功构建并正常工作。这是我当前的 MPICH 配置:

pavel@pavel:$ mpiexec --version
HYDRA build details:
    Version:                                 3.4b1
    Release Date:                            unreleased development copy
    CC:                              gcc-10  -Wdate-time -D_FORTIFY_SOURCE=2 -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpl/include -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpl/include -I/build/mpich-O9at2o/mpich-3.3~a2/src/openpa/src -I/build/mpich-O9at2o/mpich-3.3~a2/src/openpa/src -D_REENTRANT -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpi/romio/include  -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro 
    Configure options:                       '--disable-option-checking' '--prefix=/usr' '--build=x86_64-linux-gnu' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-silent-rules' '--libdir=${prefix}/lib/x86_64-linux-gnu' '--libexecdir=${prefix}/lib/x86_64-linux-gnu' '--disable-maintainer-mode' '--disable-dependency-tracking' '--with-libfabric' '--enable-shared' '--enable-fortran=all' '--disable-rpath' '--disable-wrapper-rpath' '--sysconfdir=/etc/mpich' '--libdir=/usr/lib/x86_64-linux-gnu' '--includedir=/usr/include/mpich' '--docdir=/usr/share/doc/mpich' '--with-hwloc-prefix=system' '--enable-checkpointing' '--with-hydra-ckpointlib=blcr' 'CPPFLAGS= -Wdate-time -D_FORTIFY_SOURCE=2 -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpl/include -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpl/include -I/build/mpich-O9at2o/mpich-3.3~a2/src/openpa/src -I/build/mpich-O9at2o/mpich-3.3~a2/src/openpa/src -D_REENTRANT -I/build/mpich-O9at2o/mpich-3.3~a2/src/mpi/romio/include -Wdate-time -D_FORTIFY_SOURCE=2 -I/home/pavel/mpich/src/mpl/include -I/home/pavel/mpich/src/mpl/include -I/home/pavel/mpich/modules/json-c -I/home/pavel/mpich/modules/json-c -D_REENTRANT -I/home/pavel/mpich/src/mpi/romio/include' 'CFLAGS= -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security -O2 -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security -O2' 'CXXFLAGS= -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security -O2 -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security -O2' 'FFLAGS= -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -fallow-argument-mismatch -O2 -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -O2' 'FCFLAGS= -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -O2 -g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -O2' 'build_alias=x86_64-linux-gnu' 'MPICHLIB_CFLAGS=-g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security' 'MPICHLIB_CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'MPICHLIB_CXXFLAGS=-g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong -Wformat -Werror=format-security' 'MPICHLIB_FFLAGS=-g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong' 'MPICHLIB_FCFLAGS=-g -O2 -fdebug-prefix-map=/build/mpich-O9at2o/mpich-3.3~a2=. -fstack-protector-strong' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'FC=gfortran-10' 'F77=gfortran-10' 'MPILIBNAME=mpich' 'CC=gcc-10' 'LIBS=' 'MPLLIBNAME=mpl' 'CXX=g++-10' '--with-device=ch3' '--cache-file=/dev/null' '--srcdir=.'
    Process Manager:                         pmi
    Launchers available:                     ssh rsh fork slurm ll lsf sge manual persist
    Topology libraries available:            
    Resource management kernels available:   user slurm ll lsf sge pbs cobalt
    Demux engines available:                 poll select
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 gfortran-10 构建 MPICH? 的相关文章

  • 使用 Fortran (CLFORTRAN) 在 OpenCL 中将两个选项作为参数传递

    当我的主机程序采用 C 语言时 我可以传递两个选项作为 OpenCL 函数的参数 例如 我可以通过两个 标志到clCreateBuffer像这样的函数 clCreateBuffer context CL MEM READ ONLY CL M
  • 将 C 字符串数组传递给 Fortran (iso_c_binding)

    如何传递 C 字符串数组 char cstrings 到 Fortran 子程序 问题使用 iso c binding 的 fortran C 桥接器中的字符串数组 https stackoverflow com questions 968
  • Fortran 读取混合文本和数字

    我正在使用 Fortran 90 读取包含以下格式数据的文件 number 125 var1 2 var2 1 var3 4 number 234 var1 3 var2 5 var3 1 我尝试了以下命令并且工作正常 read 2 tem
  • Dependency Walker 未显示所有依赖的 Dll

    我有一个 fortran dll 我想知道它所依赖的程序集再分配目的 http software intel com en us forums showthread php t 73161 我发现的一件事是依赖项步行器没有显示所有依赖项 即
  • FORTRAN 写()

    在开始之前 我必须先声明一下 我是 FORTRAN 的新手 我正在维护 1978 年的一段遗留代码 它的目的是从文件中读取一些数据值 处理这些值 然后将处理后的值输出到另一个文本文件 给出以下 FORTRAN 代码 INTEGER NM S
  • gfortran 未定义的引用

    我正在尝试编译一个依赖很多东西的程序 我使用并修改了提供的 makefile 来代表我的计算机设置 但在编译的最后一步中我不断收到许多未定义的引用 导致问题的命令行是 gfortran o cosmomc ParamNames o Matr
  • 纯 Fortran 过程中的 I/O

    我正在尝试将错误检查合并到我正在编写的纯过程中 我想要这样的东西 pure real function func1 output unit a implicit none integer a output unit if a lt 0 th
  • 将数组从 .npy 文件读入 Fortran 90

    我使用 Python 以二维数组 例如 X 的形式生成一些初始数据 然后使用 Fortran 对它们进行一些计算 最初 当数组大小约为 10 000 x 10 000 时 np savetxt 在速度方面表现良好 但是一旦我开始增加数组的维
  • 在一条语句中对多个变量进行相同的赋值

    有没有一种方法可以为不同的变量分配相同的值 而无需在单个语句中构造数组 例如 如果我有变量a b c d and e 我可以分配类似的东西吗 a b c d e 10 0 我知道我可以用一行来做 a 10 0 b 10 0 c 10 0 d
  • 如何在Fortran代码中将二维数组转换为一维数组?

    如何将 r i j 转换为一维数组以便可以轻松地对数字进行排序 program sort implicit none character CN 8 O 7 integer j iconf nconf integer i nbins t in
  • 如何格式化整数以仅具有所需的大小?

    我一直在尝试以下代码 program hello write i9 10 end program hello 并改变格式字符串 尝试使写入输出的字符串大小恰好满足表示整数所需的大小 但到目前为止我无法管理它 如何在 Fortran 中编写
  • Fortran gfortran linux 中的“分段错误(核心转储)”错误

    我正在创建一个程序 该程序将分析目录中的文件 fits 然后它将在另一个目录中创建另一个文件 txt 它只是一个转换器 当我尝试执行该程序 编译正常 时 它给了我一条错误消息 程序收到信号 SIGSEGV 分段错误 无效的内存引用 此错误的
  • GO TO 语句 - Fortran 到 Matlab

    我一直在努力将此网格搜索代码从 Fortran 转换为 Matlab 但是我无法正确合并 GO TO 语句 我正在尝试使用 while 循环 但我认为我需要其他东西来结束搜索 任何帮助将不胜感激 vmax 1 0E 15 amax G 1
  • MPI_Type_Create_Hindexed_Block 生成派生数据类型的错误范围

    使用Fortran 我尝试为动态分配的结构构建派生数据类型 但它得到了新类型的错误范围 代码如下 PROGRAM MAIN IMPLICIT NONE INCLUDE mpif h INTEGER I INTEGER MYID NUMPRO
  • Fortran 意图(inout)与省略意图

    良好的实践表明 Fortran 中的子例程参数每个都应具有指定的意图 即intent in intent out or intent inout 如上所述这个问题 https stackoverflow com questions 1011
  • 分发编译后的 fortran 库和模块文件

    我有一个Fortran使用很多模块的库 我用ifortWindows 上的编译器 因此 我得到一个 lib图书馆的文件和 mod所用模块的文件 这有一个缺点 我还必须分发 mod文件 如果我想在另一个程序中使用编译的库 如何防止这种情况发生
  • 在 VSCode Fortran 调试中检查从另一个模块导入的变量

    我正在调试一些包含许多 Fortran 模块的代码 其中一些模块彼此共享变量 不幸的是 带有 VScode 的 gdb 在调试时似乎无法检查导入的变量 目前 当我需要检查导入的变量时 唯一的方法是停止调试 并手动更改代码以包含等于导入变量的
  • 带有数字/标签的 Fortran IF 语句而不是另一个语句

    这段 Fortran 代码的含义是什么 IF J1 3 20 20 21 21 J1 J1 3 20 IF J2 3 22 22 23 23 J2 J2 3 22 CONTINUE 我在旧项目中看到过 我不知道这个带有数字 标签 的 IF
  • 派生类型数组:选择条目

    目前在我的代码中我有一个二维数组 integer allocatable elements 并定义一些常量 integer parameter TYP 1 integer parameter WIDTH 2 integer paramete
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统

随机推荐

  • Android Volley POST 参数

    我需要调用一个需要字符串数组作为 POST 参数的 api 例如 API 定义 POST api names 预期的 POST 参数是一个名称数组和一些其他属性 如下所示 names John Bill department Enginee
  • Mongodb 在带有正则表达式查询的数组字段上不同?

    基本上我正在尝试在模型上实现标签功能 gt db event distinct tags bar foo foobar 进行简单的不同查询会检索所有不同的标签 但是 我将如何获取与某个查询匹配的所有不同标签 举例来说 我想获得所有匹配的标签
  • Android:尝试在运行时更改 TextView 的宽度

    我有一个文本视图 我试图在运行时更改其大小 但尺寸不变 xml文件中的代码
  • 我可以将图像表单数据传递给 PHP 函数进行上传吗?

    我正在尝试使用 jquery 和 PHP 上传图像 如下所示 HTML
  • 为什么“ps”中没有出现“echo”?

    我很难理解 ps 命令上显示的内容 为了测试我的理解 我创建了下面的虚拟脚本 bin bash for i in 1 100000 do date u date u date u done 运行此脚本时 我打开了一个新终端并重复执行 ps
  • Ajax 响应:[readyState:0,responseText:“”,状态:0,statusText:“错误”]

    我的 ajax 调用导致错误 这是我可以在错误回调中获得的信息 readyState 0 responseText status 0 statusText error 这意味着什么 我究竟做错了什么 这是我的 ajax 调用 var aja
  • 使用where条件创建唯一索引

    现在我有下面的用户表 并且希望电子邮件列在 id 有前缀时唯一auth0 column id text email text not null 所以我尝试了这个CREATE UNIQUE INDEX陈述 CREATE UNIQUE INDE
  • 如何使图像适合框架,保持纵横比并在缩略图列表中居中

    我想将列表缩略图框显示为数据网格 每个缩略图必须放置在具有特定宽度和高度的框架中 为了一致性 如下所示 div class frame img src img1 jpg div div class frame img src img2 jp
  • PHP 中如何将数组元素转换为字符串?

    如果我有一个包含对象的数组 a array objA objB 每个对象都有一个 toString method 如何将所有数组元素转换为字符串 以便数组 a除了它们的字符串表示之外不再包含任何对象 是否有单行或我必须手动循环数组 一行 a
  • Golang 写入输入并从终端进程获取输出

    我有一个关于如何从终端子进程 例如 ssh 发送输入和接收输出的问题 python 中的一个例子是这样的 如何为子进程提供密码并同时获取标准输出 我在 Golang 中找不到与上述工作方式类似的简单示例 在 Golang 中 我想做这样的事
  • Delphi 10.3.3 未能通过 macOS 公证

    我的程序在Delphi 10 3 2中经过公证 但在10 3 3中失败 PAClient 退出并显示代码 1 是否有日志可以帮助我诊断问题 如果是这样 我该如何找到它 这是之后的整个错误 Connecting to 192 168 1 23
  • 为什么 int[] 上的 Arrays.asList 返回 List,而不是 List

    考虑这段代码 int tcc 1 2 3 ArrayList
  • Javascript 设置打印样式表

    如何修改打印样式表对象的样式 我正在使用 jQuery 如果这有帮助的话 我基本上想设置一个对象的 css 属性 但该属性仅适用于打印 而不适用于屏幕 例如 myobject css background white print 这个问题有
  • 如何使用timeit模块

    我该如何使用timeit比较我自己的功能的性能 例如 insertion sort and tim sort 如果你想使用timeit在交互式 Python 会话中 有两个方便的选项 Use the IPython壳 其特点是方便 time
  • 从轮廓中删除图例

    这是从R获得的图片 代码如下 我想将其导出为 PDF 格式 不过 我想首先删除右侧的图例栏 据我所知 没有可选参数来控制这个条形图例 你会怎么做 library gplots f lt function x y theta num lt x
  • SimpleDateFormat 抛出 ParseException 错误偏移量为 0

    下面的代码有什么问题 它抛出一个 ParseException 错误偏移量为 0 final DateFormat df new SimpleDateFormat EEE MMM dd HH mm ss yyyy df parse Thu
  • PrimeFaces p:editor 基于什么?

    我想向 PrimeFaces 添加一些客户端功能p editor 但由于某种原因 我无法发现他们用来构建组件的 JavaScript 客户端代码 有人能指点我吗 附 我想做的两件事是使组件可调整大小 PrimeFaces 不支持 并且我想添
  • 多态性和接口 - 澄清?

    迂腐的问题 根据维基百科多态性有 3 种类型 特设多态性 指的是可以应用于参数的多态函数 不同的类型 但根据类型的不同 其行为也不同 它们所适用的论点 换句话说 重载 function Add x y Integer Integer fun
  • 减去 Pandas 或 Pyspark Dataframe 中的连续列

    我想在 pandas 或 pyspark 数据框中执行以下操作 但我仍然没有找到解决方案 我想从数据框中的连续列中减去值 我所描述的操作如下图所示 请记住 输出数据帧的第一列不会有任何值 因为输入表中的第一列不能被其前一列减去 因为它不存在
  • 如何使用 gfortran-10 构建 MPICH?

    TL DR 如何使用 gfortran 10 gcc 10 和 g 10 构建 MPICH 背景 我想用 grortran 10 构建 MPICH以便能够使用最新的 MPI 绑定 但我还没能做到 尝试在 Ubuntu 上通过 apt 安装