2024-11-03 MPI4PY实现探究 MPI4PY实现探究 前言MPI C/Fortran P2P通信一般需要指定<数据首地址,数据类型,数据数目>三元组信息,根据三元组信息可以通信一段连续内存数据(MPI派生类型允许内存不连续数据一次通信完成,但底层实现仍然要求发送内存连续数据)。mpi4py是MPI的Python绑定。如果你对Python标准实现Cpython有了解的话,Python对象都不是一个简单的“裸”数据,Python对象在Cpython实现中一般是一个C结构体,比如Python列表对象如下所示:typedef struct { PyObject_VAR_HEAD /* Vector of pointers to list elements. list[0] is ob_item[0], etc. */ PyObject **ob_item; /* ob_item contains space for 'allocated' elements. The number * currently in use is ob_size. * Invariants: ... 2024年11月03日 79 阅读 0 评论
2024-02-02 conda指定虚拟环境目录方法 conda指定虚拟环境目录方法 笔者使用的HPC机器分配的HOME目录空间很小,而conda默认创建的虚拟环境及安装的python包会放置在该目录下,比如~/.conda/envs。Python包安装的多了很快会将HOME目录空间用满,因此需要将Python虚拟环境迁移到大空间的工作分区中。下面记录了设置conda虚拟环境目录方法。方法一(不推荐)使用conda create命令的--prefix选项指定包含路径信息的环境名称。$ conda create --prefix=/path/to/your/envName激活环境命令$ conda activate /path/to/your/envName可以看出,这种方法需要使用全路径的环境名称,使用不方便。方法二(推荐)我们可以在~/.condarc配置文件中指定默认环境和包存放目录。$ vi ~/.condarc envs_dirs: - /path/to/new/envs/dir pkgs_dirs: - /path/to/new/pkgs/cache/dir 设置好配置文件后,可以使用conda info查询环境目录是否改变了。$ conda... 2024年02月02日 1,129 阅读 0 评论