gpt4 book ai didi

ubuntu - 在/中执行时如何不以root身份执行MPI

转载 作者:行者123 更新时间:2023-12-04 18:46:15 26 4
gpt4 key购买 nike

我在执行 SSH 和 MPICH 时遇到了一些问题。从我之前提出的一些问题来看,我能够进行到执行 mpi_hello.c 程序的程度。

作为引用,我正在按照本教程设置 MPICH:https://help.ubuntu.com/community/MpichCluster

我在 root 中创建了一个名为 clusterFiles 的目录,并在所有节点上创建了一个名为 clusterUser (clusteruser) 的用户。我导出了 clusterFiles 并在所有节点中安装了 clusterFiles。此外,我在主节点上将 clusterFiles 的所有权更改为 clusterUser。我还将 clusterUser 的主目录更改为/clusterFiles。

我在主节点上为 clusterUser 创建了一个 ssh key ,并将该 key 添加到授权列表中。我在所有节点和主节点上安装了一个钥匙串(keychain),我按照指南中的说明编辑了 .bashrc(我将指南中的内容复制到 .bashrc 中)

我还在所有节点上安装了 MPICH2 和 GCC。

我为我的特定集群编辑了机器文件。

但是,当我去执行 MPI hello_world.c 程序时,这就是发生错误的地方。

我将指南上的代码复制并粘贴到一个 .c 文件中,并将其命名为 mpi_hello.c(这是在主节点上完成的)。

在指南中,他刚刚调用的最后一部分 mpicc [arguments]mpiexec [arguments] .但是,当我调用 mpicc 时,我需要 sudo mpicc [arguments] .这是我应该关注的问题,还是应该这样做的正确方法?

当我运行 mpiexec(没有 sudo)时,我收到以下错误:

clusteruser@rgcluster2blade1:~$ mpiexec -n 7 -f machinefile ./mpi_hello

[mpiexec@rgcluster2blade1] HYDU_parse_hostfile (./utils/args/args.c:323): unable to open host file: machinefile

[mpiexec@rgcluster2blade1] mfile_fn (./ui/mpich/utils.c:341): error parsing hostfile

[mpiexec@rgcluster2blade1] match_arg (./utils/args/args.c:153): match handler returned error

[mpiexec@rgcluster2blade1] HYDU_parse_array (./utils/args/args.c:175): argument matching returned error

[mpiexec@rgcluster2blade1] parse_args (./ui/mpich/utils.c:1609): error parsing input array

[mpiexec@rgcluster2blade1] HYD_uii_mpx_get_parameters (./ui/mpich/utils.c:1660): unable to parse user arguments

[mpiexec@rgcluster2blade1] main (./ui/mpich/mpiexec.c:153): error parsing parameters

这些文件是忘记安装的吗?起初,我认为我需要在 mpiexec 前面使用 sudo。所以当我执行: sudo mpiexec [arguments]它“运行”,但当我需要它以集群用户身份连接时,它以 root 身份连接到 SSH 集群。

我主要担心的是他没有以 root 身份执行他的命令。我想知道是否有一个隐含的步骤,或者至少有一个我应该执行但没有执行的命令?

另外,我注意到,当我尝试在其他节点上将 clusterFiles 的所有权更改为 clusterUser 时,我会收到一个操作不允许的错误(执行此命令时我是 root)。我的想法是,由于我更改了主节点的所有权,它会传播到其他节点,因为它们具有相同的用户名。因此,我有效地将所有权更改为自身。这是一个正确的想法,还是还有更多呢?

编辑:

根据用户 Zulan 的建议,我检查了 machinefile 的权限有趣的是,它仍然设置为 rgcluster2blade1。我决定运行命令 sudo chown -R clusteruser /clusterFiles为了使clusterFiles中的所有文件/文件夹归clusteruser所有。我只在主节点上完成了这个。将检查其他节点。

编辑2:

好的,所以在检查了集群的其余部分之后(在做整个事情之前,我现在只用 4 个进行实验)我发现其中 2 个节点正在向除 clusteruser 之外的另一个用户授予权限。他们将其提供给用户渲染。我试图执行 sudo chown command但在两者上,我都收到了 Operation not allowed 错误

最佳答案

就像更新一样。由于我发现 GID 和 UID 都乱了,我决定删除用户并创建一个新帐户。在做任何事情之前,我确保检查并在需要时更改用户的 UID 和 GID,以使它们在所有节点上都相同。我不记得我头顶上的命令。稍后会寻找它。一旦我找到它,我会更新这个答案。

Anftwards,我继续使用指南,一切正常。

关于ubuntu - 在/中执行时如何不以root身份执行MPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38336881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com