自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

自可乐的博客

人生如此自可乐,岂必局束为人鞿。

  • 博客(101)
  • 资源 (5)
  • 收藏
  • 关注

原创 并行快速傅里叶变换 mpi4py-fft

本文从本人简书博客同步过来在上一篇中我们介绍了一个使用 mpi4py 实现的并行日志工具 —— python-mpi-logger,下面将介绍一个并行的快速傅里叶变换库 —— mpi4py-fft。快速傅里叶变换(FFT)简介快速傅里叶变换(Fast Fourier Transform, FFT),是快速计算序列的离散傅里叶变换(DFT)或其逆变换的方法。傅里叶分析将信号从原始域(通常是时间...

2018-11-06 20:26:05 3047 4

原创 并行日志 python-mpi-logger

本文从本人简书博客同步过来在上一篇中我们介绍了在 IPython 中使用 mpi4py,下面我们将介绍一个使用 mpi4py 实现的并行日志工具 —— python-mpi-logger。在介绍 python-mpi-logger 之前,我们先简要地介绍一下日志的概念和其作用以及 Python 标准库提供的日志纪录 logging 模块,因为 python-mpi-logger 也是处于 lo...

2018-11-01 21:46:35 883

原创 在 IPython 中使用 mpi4py

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 与 OpenMP 混合编程,下面我们将介绍在 IPython 中使用 mpi4py。IPython 简介Python 的一个重要特性是其提供的交互式解释器,在其中可以快速地做一些计算和检验自己的想法而不需要像其它很多编程语言一样必须首先创建一个完整的程序文件。但是 Python 自带的解释器的功能是非常有限的,在很多情况下使用并不...

2018-10-14 15:03:55 751 1

原创 mpi4py 与 OpenMP 混合编程

本文从本人简书博客同步过来在上一篇中我们介绍了在 cython 中使用 mpi4py 的方法,下面我们将介绍 mpi4py 与 OpenMP 混合编程。OpenMP 简介OpenMP (Open Multi-Processing) 是一个跨平台的多线程实现,它本身不是一种独立的并行语言,而是为多处理器上编写并行程序而设计的、指导共享内存多线程并行的编译制导指令和应用程序编程接口(API),可...

2018-10-13 22:47:34 1023

原创 在 cython 中使用 mpi4py

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的 run 模块,下面我们将介绍在 cython 中使用 mpi4py。cython 简介Cython 是 Python 编程语言的超集,旨在通过主要使用 Python 编写的代码提供类似 C 的性能。Cython 是一种生成 CPython 扩展模块的编译语言,用 Cython 编写 Python 的扩展模块与直接写 Pyth...

2018-10-13 22:44:04 456

原创 mpi4py 中的 run 模块

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的 futures 模块,下面我们将介绍 mpi4py 中的 run 模块。在 mpi4py初始化和运行时设置中介绍过,默认情况下,在导入模块时,mpi4py 会调用 MPI_Init_thread() 以初始化 MPI 执行环境并设置退出钩子以使程序退出前会自动调用 MPI_Finalize() 结束 MPI 执行环境。此外,m...

2018-10-11 22:16:19 752

原创 mpi4py 中的 futures 模块

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的 profiling,下面我们将介绍 mpi4py 中的 futures 模块。mpi4py.futures 提供了一个由多个工作进程使用 MPI 进程间通信来异步执行任务的高级别接口。mpi4py.futures 是建立在 Python 标准库中的 concurrent.futures 的基础之上的。这里先简要介绍一下 con...

2018-10-07 21:00:41 524

原创 mpi4py中的profiling

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中初始化和运行时设置,下面我们将介绍 mpi4py 中的 profiling。API下面是 mpi4py 中 profiling 相关的函数:mpi4py.profile(name, **kargs)MPI profiling 支持。name 是要导入的 profiler 库。其它可设置参数有:path,一系列由字符串表示的...

2018-10-01 22:18:16 465

原创 mpi4py初始化和运行时设置

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 并行读/写 numpy npy 文件的方法,下面我们将介绍 mpi4py 软件包初始化相关的一些设置。初始化及运行时设置有在 C/C++/Fortran 等其它计算机语言下编写 MPI 并行计算程序经验的读者都知道,在使用 MPI 时除了要导入 MPI 的相应头文件之外,还要首先调用 MPI_Init/MPI_Init_threa...

2018-10-01 22:14:49 1124 4

原创 mpi4py 并行读/写 numpy npy 文件的方法

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中获得高性能 I/O 的方法和建议,下面我们将介绍 mpi4py 并行读/写 numpy npy 文件的方法。在使用 mpi4py 写并行计算程序时经常涉及到对 numpy 数组的操作,常用的操作是将一个大的 numpy 数组按照某种特定的方式分布到各个 MPI 进程中进行并行处理。在某些时候可能需要将这个数组存储到文件中,无论...

2018-08-12 09:57:50 1753

原创 mpi4py 中获得高性能 I/O 的方法和建议

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的文件互操作性,下面我们将介绍 mpi4py 中获得高性能 I/O 的方法和建议。MPI 在底层实现中可充分利用集合操作和非连续数据读/写进行面向文件系统/设备的特殊优化。因此使用 MPI I/O 操作,最重要的就是要活用其提供的几个特征:单次非连续数据访问,集合操作,非阻塞操作,理解并灵活设置适合文件系统特征的各 hint,...

2018-08-12 09:48:52 564

原创 mpi4py 中的文件互操作性

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中 I/O 操作的一致性语义,下面我们将介绍 mpi4py 中的文件互操作性。文件是一种持续性的存储,当程序运行完后依然会存在(只要程序不删除文件),可能会被其他程序或在其他环境中使用,因此文件的互操作性就是一个问题。所谓文件互操作就是指一个运行环境/进程写入文件的数据能够被另外的环境/进程所正确解析。MPI 程序操作的文件只是...

2018-08-09 17:30:03 333

原创 mpi4py 中 I/O 操作的一致性语义

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中 I/O 相关的 hints,下面我们将介绍 mpi4py 中 I/O 操作的一致性语义。MPI 的 I/O 操作的一致性语义指明了多个进程进行 I/O 操作的结果。MPI 程序访问文件都通过一个集合操作 MPI.File.Open 返回的文件句柄来执行,应提供以下 3 个级别的一致性:使用相同文件句柄访问文件的串行一致...

2018-08-09 17:28:11 386

原创 mpi4py 中 I/O 相关的 hints

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的共享文件指针 I/O 操作,下面我们将介绍 mpi4py 中 I/O 相关的 hints。MPI 允许用户为 MPI 实现传递一些 hints。对 I/O 操作,这是通过一些 I/O 操作方法的 info 参数来进行传递的,这些方法包括 MPI.File.Open,MPI.File.Set_view,MPI.File.Set...

2018-08-09 17:24:55 404

原创 mpi4py 中的共享文件指针 I/O 操作

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的非阻塞 I/O 操作,下面我们将介绍 mpi4py 中的共享文件指针 I/O 操作。共享文件指针每个通过 MPI.File.Open 打开的文件,除了每个进程所拥有的独立文件指针之外,还存在一个全局唯一的为每个进程所共享的共享文件指针。共享文件指针也是以相对于进程当前文件视图的相对位置计算,并且共享文件指针和每个进程...

2018-08-06 21:16:01 607

原创 mpi4py 中的非阻塞 I/O 操作

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中读/写文件中数组的方法,下面我们将介绍 mpi4py 中的非阻塞 I/O 操作。MPI 支持前面介绍过的所有读/写方法(包括使用独立文件指针和显式偏移地址的读/写方法,非集合和集合读/写方法)的非阻塞版本。非阻塞读/写方法的名称一般是在对应的阻塞读/写方法的名称前面加上 I,如 Iread/Iwrite,Iread_at/Iw...

2018-08-06 21:13:47 493

原创 mpi4py 中读/写文件中数组的方法

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的不连续读/写和集合 I/O 操作,下面我们将介绍 mpi4py 中读/写文件中数组的方法。在并行科学计算程序中,经常会涉及到读/写文件中的数组(包括子数组和分布式数组,数组可以是多维的,规则分布或不规则分布的)。MPI 提供了相应的方法使这种类型的操作方便而高效。在并行应用中,数组一般会按照某种方式分布在多个进程中,而程...

2018-08-05 16:55:09 887

原创 mpi4py 中的不连续读/写和集合 I/O 操作

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的简单并行 I/O 操作,下面我们将介绍 mpi4py 中的不连续读/写和集合 I/O 操作。在前面的介绍中,我们没有设定文件视图,或者说使用了默认的文件视图。MPI 中的文件视图定义文件中对一个进程可见的部分,一个 MPI 读/写操作方法只能操作文件中其可见的部分,而会跳过其不可见的部分。当一个文件刚被打开时,默认情况下,整...

2018-08-03 21:33:36 538

原创 mpi4py 中的简单并行 I/O 操作

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的 memory 对象及内存操作,下面我们将介绍 mpi4py 中的简单并行 I/O 操作。在前面我们已经简要地介绍了 mpi4py 中的并行 I/O 及文件视图等相关概念和操作,但是 MPI 中的 I/O 操作应该是 MPI 标准中最复杂和最难理解的部分,因为 MPI 中 I/O 操作的方法非常多,而且极易发生混淆(可参见这...

2018-08-03 21:31:17 1085

原创 mpi4py 中的 memory 对象及内存操作

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的客户端-服务器编程方法,下面我们将介绍 mpi4py 中的 memory 对象及内存操作。Python 是一种比较高级的动态编程语言,通过其提供的高级对象和语法,我们一般不需要直接同底层的内存操作打交道,比如说,在 Python 中,我们一般不会如在 C/C++ 等语言中一样先分配内存区域,然后使用分配的内存,使用完后再释放...

2018-08-02 16:41:52 716

原创 mpi4py 中的客户端-服务器编程

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的 Op 对象,下面我们将介绍 mpi4py 中的客户端-服务器编程。MPI 允许在不拥有相同通信子对象的两个进程组之间建立通信联系。该功能可以适用于很多场合,如:应用程序分两个部分,各自独立启动,但在运行时需要建立通信联系。某些可视化工具需要连接到正在运行的进程上。并行的 server 程序可能需要与多个并行的 c...

2018-08-02 16:39:55 433

原创 mpi4py 中的 Op 对象

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的数据类型解析,下面我们将介绍 mpi4py 中的 Op 对象。MPI 内置定义了很多算符,可以用在 Reduce,Allreduce,Reduce_scatter,Scan,Exscan 等操作上,但是这些内置定义的算符通常只能使用 MPI 预定义数据类型。不过 MPI 支持自定义操作算符,可以用自定义的算符完成更通用的操作...

2018-07-31 21:21:38 514

原创 mpi4py 中的数据类型解析

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的通用化请求,下面我们将介绍 mpi4py 中的数据类型解析。通过自定义数据类型,应用程序可任意指定数据在内存中的布局。在 MPI-1 中,一旦确定了数据类型定义,则定义的具体细节将无从获取。某些情况下,在数据类型定义完之后,仍有必要访问其定义流程、数据布局等信息,为此 MPI-2 提供了一些函数来解析定义数据类型过程的信息,...

2018-07-27 21:56:56 485

原创 mpi4py 中的通用化请求

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的 Status 对象,下面我们将介绍 mpi4py 中的通用化请求。MPI-2 通过通用请求对象为应用程序提供自定义非阻塞操作的机制。自定义的非阻塞操作也会返回 request 对象,可以使用 Test,Wait 及它们的变种来测试和等待其完成。通用请求(generalized requests)的非阻塞操作能够与程序的正常...

2018-07-27 21:54:30 444

原创 mpi4py 中的 Status 对象

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的 info 和 assertion,下面我们将介绍 mpi4py 中的 Status 对象。在 MPI-1 中,Status 对象仅用于点到点通信,而 MPI-2 则在通用化请求以及并行 I/O 中使用 Status 对象。因此新的 MPI.Status 对象在不同上下文环境下,可能存在有效域或无效域,特别是在通用化请求操作...

2018-07-24 20:10:33 1307

原创 mpi4py 中的 info 和 assertion

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的错误处理,下面我们将介绍 mpi4py 中的 info 和 assertion。MPI 允许用户提供两种类型的与应用有关的信息:hints 和 assertions。hints 是应用中所做的有助于提高程序性能的选项,MPI 实现可以忽略用户提供的 hints 而不影响程序的正确性;assertions 是用户(编程者)给 ...

2018-07-24 20:08:40 255

原创 mpi4py 中的错误处理

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的属性和命名操作,下面将介绍 mpi4py 中的错误处理。预定义错误处理通信子MPI.Comm.Set_errhandler(self, Errhandler errhandler)将错误处理函数 errhandler 与当前通信子对象关联。MPI.Comm.Get_errhandler(self)...

2018-07-21 15:29:31 1861

原创 mpi4py 中的属性和命名操作

本文从本人简书博客同步过来在上一篇中我们介绍了 MPI 3.1 新增的若干功能,下面我们将介绍 mpi4py 中的属性和命名操作。应用程序可在运行时定制一些信息与相应的 MPI 对象(包括通信子对象,数据类型对象,窗口对象等)相关联,称之为该对象的属性。实际上,MPI 内部的一些工作机制也是通过这种方式来实现的,如集合操作,虚拟进程拓扑等。属性为本地(当前)进程和相关对象所私有,不会自动迁...

2018-07-21 15:26:20 320

原创 MPI 3.1 新增的若干功能

本文从本人简书博客同步过来在上一篇中我们介绍了 MPI-3 中大的计数及相关函数,下面我们将介绍 MPI 3.1 新增的若干功能。MPI 3.1 标准于 2015 年 6 月发布,主要是针对 MPI 3.0 的改正,但也增加了少量的新功能。新增功能新增 MPI_Aint_add 和 MPI_Aint_diff 以对内存地址进行更安全和更具移植性的算术加减操作。这两个新函...

2018-07-16 15:29:28 438

原创 MPI-3 中大的计数及相关函数

本文从本人简书博客同步过来在上一篇中我们介绍了非线程安全的 Probe 和 MPI-3 中线程安全的 Mprobe,下面将介绍 MPI-3 中大的计数及相关函数。在 MPI-1 和 MPI-2 标准中,所有的通信和 I/O 函数/方法中的计数参数都使用的是 C 语言 int 或者 Fortran INTEGER 类型,在大多数系统中,它们都是用 32 位来表示的。一个 32 位的 C in...

2018-07-16 15:27:18 371

原创 MPI-3 中线程安全的 Mprobe

本文从本人简书博客同步过来在上一篇中我们介绍了 MPI 中多线程的使用,下面我们将介绍 MPI-3 中线程安全的 Mprobe。Probe 和 Iprobe 操作的作用是在不实际接收消息的情况下检查消息中包含的信息,据此决定接收消息的具体方式——如为待接收消息申请空间等。但是 Probe 和 Iprobe 操作不是线程安全的,如在多线程中使用 Probe 或 Iprobe 来确定一个消...

2018-07-11 20:38:44 565

原创 MPI-3 中增强的单边通信

本文从本人简书博客同步过来在上一篇中我们介绍了 MPI-3 中引进的非阻塞通信子复制和组集合通信子创建方法,下面我们将介绍 MPI-3 中增强的单边通信方法。MPI-2 引进了单边通信,也称远端内存访问(Remote Memory Access,RMA)。单边通信操作可以提供更高的性能(在有好的硬件支撑的情况下)和更强的功能,简化某些并行编程任务。在前面我们介绍过 MPI-2 引进的单边通...

2018-06-29 22:41:05 1673

原创 MPI-3 非阻塞通信子复制和组集合通信子创建方法

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的近邻集合通信方法,下面我们将介绍 mpi4py 中的非阻塞通信子复制和组集合通信子创建方法。非阻塞通信子复制方法 MPI.Comm.Idup 和组集合通信子创建方法 MPI.Comm.Create_group 都是 MPI-3 中新增的通信子创建方法。在前面已经介绍了 MPI-1 和 MPI-2 中的通信子创建方法,其中...

2018-06-23 10:28:07 1048

原创 MPI-3 近邻集合通信

本文从本人简书博客同步过来在上一篇中我们介绍了 mpi4py 中的非阻塞集合通信方法,下面我们将介绍 mpi4py 中的近邻集合通信方法,另一个 MPI-3 引进的新特性。近邻集合通信(neighborhood collective communication) 是定义在拓扑通信子之上的一类集合通信操作,不同于一般集合通信操作中通信子上的所有进程都会参与,近邻集合通信只要求拓扑通信子上的某...

2018-06-19 22:05:59 670

原创 MPI-3 非阻塞集合通信

本文从本人简书博客同步过来在上一篇中我们概要地介绍了最新的 MPI-3 标准中引进的新特性,mpi4py 3.0.0 支持 MPI-3 的很多新特性,我们将在后面逐步介绍,下面我们首先介绍 mpi4py 中的非阻塞集合通信。在前面我们介绍了 mpi4py 中的集合通信,不过前面介绍的是 MPI-1 和 MPI-2 标准下的集合通信方法,所有这些方法都是阻塞式的,在通信没有完成之前,这些方法...

2018-06-19 22:03:35 706

原创 MPI-3 新特性

本文从本人简书博客同步过来在上一篇中我们介绍了 SLURM 资源管理系统,下面将介绍 MPI-3 的新特性。在前面我们介绍了 MPI 的基本概念和使用 mpi4py 在 Python 环境下进行 MPI 编程的方法。不过前面的介绍主要基于 MPI-1 和 MPI-2 标准,最新的 MPI-3 标准已经发布,MPI-3 引进了若干新特性,并对之前版本的部分特性作了扩充和改进,这些新特性使我们...

2018-06-17 22:41:01 1296

原创 SLURM 资源管理系统

本文从本人简书博客同步过来在上一篇中我们简要介绍了 LSF 作业管理系统,下面将介绍 SLURM 资源管理系统。简介SLURM (Simple Linux Utility for Resource Management)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统,被世界范围内的超级计算机和计算集群广泛采用。SLURM 维护着一个待处理工作的队列并管理此...

2018-05-27 21:19:40 11175

原创 LSF 作业管理系统

本文从本人简书博客同步过来在上一篇中我们简要介绍了 PBS 作业管理系统,下面我们将介绍 LSF 作业管理系统。简介LSF (Load Sharing Facility)是一个被广泛使用的作业管理系统,具有高吞吐、配置灵活的优点。通过 LSF 集中监控和调度,可以充分利用计算机的CPU、内存、磁盘等资源。常用命令bqueues:查看计算队列bhosts:查看计算节点...

2018-05-27 21:17:28 10323

原创 PBS 作业管理系统

本文从本人简书博客同步过来在上一篇中我们非常简单地介绍了在 C 语言中嵌入 mpi4py 程序的方法。前面我们所给出的各个例程一般都是在单台计算机上直接使用 mpiexec 或 mpirun 执行的,但是在实际应用中,对规模比较大的高性能计算任务,一般会提交到集群或超级计算机平台上进行计算。集群系统具有低成本、高性能的特性,提供了强大的批处理和并行计算能力,代表了高性能计算机发展的新方向。...

2018-05-27 21:14:10 11489

原创 在 C 语言中嵌入 mpi4py 程序

本文从本人简书博客同步过来在上一篇中我们介绍了用 f2py 包装 Fortran 语言 MPI 程序以供 mpi4py 调用的方法,可以看到包装 C, C++,Fortran 等其它计算机语言的 MPI 程序供 mpi4py 调用是比较容易的,其实反过来将 mpi4py 程序嵌入其它计算机语言中也不难,下面我们将介绍在 C 语言程序中嵌入 mpi4py 程序的方法。Python 与 C 之...

2018-05-23 21:24:26 459

李开复建议在校大学生应该读的书

李开复建议在校大学生应该读的书,到图书馆别忘看看。

2010-10-08

ModemComm简单指令发送接收串口编程实例

ModemComm简单指令发送接收串口编程实例,利用MSComm控件编写的串口程序,提供一种简单的操作串口的方法。

2010-09-03

GRE词汇考试频率统计表

GRE词汇考试频率统计表,让你抓住重点,有的放矢,事半功倍的掌握GRE 词汇。

2010-05-11

GRE 2007年10月回忆题

GRE 2007年10月回忆题 ,最大程度接近真题,令你有备无患。

2010-04-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除