使用 MPI 将卷积滤波器并行应用于图像 该项目是为大学课程并行系统开发的,作为对使用消息传递接口 (MPI) 和 OpenMP API 的并行计算的介绍。 卷积滤波器 在图像处理中,卷积滤波器(也称为内核、卷积矩阵或掩码)用于通过应用模糊、锐化、浮雕、边缘检测等效果来变换图像。 在给定输入图像和卷积矩阵的情况下,计算围绕计算输出图像的每个像素的值。 为什么要平行 第i 个输出像素的值的计算基于输入像素i及其周围像素的值。 这表明我们应该利用所需计算的局部性。 实际上,如果滤波器是一个3x3矩阵,为了计算原始图像的矩形( NxM )部分的输出值,只需要相邻像素,即上边的2x(N+2)和较低的行加上2x(M+2)用于右列和左列。 由于问题的这种性质,并行方法是一个很好的候选者。
2021-11-18 17:29:41 13KB C
1
KRATOS Multiphysics (“ Kratos”)是用于构建并行,多学科仿真软件的框架,旨在实现模块化,可扩展性和高性能。 Kratos用C ++编写,并且具有广泛的Python接口。 更多内容 根据BSD-4, Kratos是免费的,甚至可以直接在商业软件中使用。 它的许多主要应用程序也是免费的,并且已获得BSD-4许可,但是每个派生的应用程序都可以拥有自己的专有许可证。 主要特点 Kratos是多平台的,可用于Windows,Linux (多个发行版)和macOS 。 Kratos是OpenMP和MPI并行的,最多可扩展至数千个内核。 Kratos提供了一个定义通用框架和几个应用程序的核心,这些应用程序的工作原理类似于可以扩展到各个领域的插件。 它的主要应用是: 用于内聚和非内聚球形和非球形粒子simultion 提供2D和3D不可压缩流体配方 解决不同FSI问题的
2021-11-15 19:43:17 53.57MB python c-plus-plus multi-platform openmp
1
深 圳 大 学 实 验 报 告 课程名称并行计算 实验名称矩阵乘法的 OpenMP 实现及性能分析 姓 名 学 号 班 级 实验日期2011 年 10 月 21 日11 月 4 日 一.实验目的 1) 用 OpenMP 实现最基本的数值算法矩阵乘法 2) 掌握 for 编译制导语句 3) 对并行程序进行简单的性能 二.实验环境 1) 硬件环境32 核 CPU32G 内存计算机 2) 软件环境Li
2021-11-14 20:28:52 251KB 文档 互联网 资源
热扩散使用-MPI- 使用 OpenMP 和 MPI 求解网格上的热扩散方程 考虑在大小为 0 ≤ x, y ≤ π 的二维域上求解 κ = 常数 = 1 的热扩散方程。 设边界条件为 T(x, 0) = cos^2 x T(x, π) = sin^2 x T(0, y) = T(π, y)(以 x 为周期) 该方程可以通过空间上的中心有限差分和时间上的前向欧拉方法求解。 该软件包包括 3 种不同的实现: • 串行:对于串行版本,使用带有命令行选项的 heat_serial ./heat_serial {nx} 用于网格大小为 nx^2 的解决方案 • OpenMP:使用命令行选项./heat_omp {nx} {nthreads} 运行的并行版本heat_omp。 • MPI:与mpiexec ./heat_mpi {nx} 一起运行的并行版本heat_mpi。 使用域分解进行并
2021-11-13 10:14:02 4KB c-plus-plus openmp mpis heat-diffusion
1
该程序是在 gcc 4.7.3 和 openmp 3.1 上开发的。
2021-11-12 15:11:03 982KB C++
1
How to build the simplest Hello World program with OpenMP.
2021-11-09 19:39:58 112KB OpenMP
1
坎尼边缘平行 使用OpenMP,CUDA和OpenCL并行执行Canny Edge Detection算法。
2021-11-09 11:22:14 72.4MB C++
1
6.3 目标代码形式 对于 OpenMP 的并行域管理功能的实现,一部分在代码变换中体现,另一部分在运行库 中提供支持。对于并行域如此复杂的功能,全部依靠代码翻译变换来完成并不现实,因此许多 功能就只好压入到运行库中。如此一来,编译工作关于并行域管理的部分反而变得简单,而运 行库则需要负担更多的工作。此时在代码变换上只留下了启动并行域的代码(包括执行任务函 数)、任务函数的封装两大任务。可行的目标代码形式如图 6.4: 图 6.4 parallel 的目标代码框架 在 GCC 的 GOMP 中变换前后的代码形式如下: 1. #pragma omp parallel 变换前的代码 2. { 3. body; 4. } 下面是变换后的代码,分成两部分: 1. void subfunction (void *data) 这个是任务函数 2. { 3. use data; 4. body; 5. } …… 6. setup data; 数据共享、私有化等处理 7. GOMP_parallel_start (subfunction, &data, num_threads); 创建并行域 8. subfunction (&data); 调用任务函数 9. GOMP_parallel_end (); 退出并行域 上 面 的 代 码 变 换 与 图 6.4 基 本 一 致 , GOMP 中 的 GOMP_parallel_start() 和 GOMP_parallel_end()等函数是 GOMP 运行库中的函数。OMPi 的实现略有不同。 这里只是给出实现 OpenMP 并行域管理的代码基本形式,与具体的 C 编程语言绑定的代 码“框架”将在第 9 章给出。 串行代码 并 行 域 #pragma omp parallel 数据环境准备 并行域创建代码 …… 执行任务函数 …… 退出并行域 { …… …… …… } 任务函数 封装 替换
2021-11-08 17:02:03 4.28MB OpenMP
1
包含常用的源码例子,不错;并行循环,常用函数,分段并行,嵌套并行,求Pi,同步
2021-10-30 21:55:30 10.47MB openMP
1
应用于MPI与OPENMPI的论文,详细阐述了MPI
2021-10-28 10:41:12 3.15MB MPI openmP
1