MADbench2

MADbench2

MADbench2是一款用于测试大规模并行架构的I/O、通信和计算子系统在真实科学应用压力下的综合性能的工具。

MADbench2 基于 MADspec 代码,该代码根据天空的噪声像素化图及其像素-像素噪声相关矩阵计算宇宙微波背景辐射的最大似然角功率谱。MADbench2 保留了其父科学应用程序代码的全部计算复杂性,但使用自行生成的伪数据来允许绕过与处理真实 CMB 数据集相关的无数计算上不相关的细节。

MADbench2 可以以两种模式运行:

  • regular mode, in which the full code is run.
  • IO mode, in which all calculation/communication is replaced with busy-work.

此外,MADbench2 可以作为单组或多组运行;在前者中,所有矩阵运算都分布在所有处理器上执行,而在后者中,矩阵在所有处理器(S&D)上构建、求和和求逆,然后重新分布在处理器子集(组)上他们随后的操作(W&C)。即使处理器数量非常多,这种组并行性也允许在占主导地位的矩阵-矩阵乘法 (W) 阶段的处理器上保持数据密集。

官网

https://crd.lbl.gov/divisions/scidata/c3/c3-research/madbench2/

下载

https://crd.lbl.gov/assets/Uploads/MADbench2.tar

编译

要在常规模式下运行,MADbench2 需要链接到 ScaLAPACK 和 LAPACK 库及其依赖项(BLAS、PBLAS、BLACS)。 MADbench2.h 文件包含系统特定的定义和声明;该文件应根据需要进行扩充,并使用 -D SYSTEM 编译代码。

要在 IO 模式下运行,MADbench2 应使用 -D IO(除了 -D SYSTEM 之外)进行编译,然后所有库调用都被重新定义为繁忙工作,以便不需要任何库。

mpicc -D SYSTEM -D COLUMBIA -D IO -o MADbench2.x MADbench2.c -lm

修改文件系统路径

这是源代码中的固定值。因此,在编译之前,请确保修改该MADbench2.c文件(第 271、275 和 276 行):

for (n=0; n<no_pe; n++) {
    if (my_pe==n && stat("files", &buf)!=0) mkdir("/mnt/gkfs/files", S_IRWXU);
    PMPI_Barrier(MPI_COMM_WORLD);
}
    
if (strcmp(FILETYPE, "UNIQUE")==0) sprintf(filename, "/mnt/gkfs/files/data_%d", my_pe);
else sprintf(filename, "/mnt/gkfs/files/data");

运行

命令行参数:

MADbench2.x   $NO_PIX   $NO_BIN   $NO_GANG   $SBLOCKSIZE   $FBLOCKSIZE   $RMOD   $WMOD
NO_PIXSets the size of the pseudo-data - all the component matrices have NO_PIX x NO_PIX elements
NO_BINSets the size of the pseudo-dataset - there are NO_BIN component matrices
NO_GANGSets the level of gang-parallelism - there are NO_GANG gangs
SBLOCKSIZESets the ScaLAPACK blocksize - all matrices will be block-cycically distributed with side SBLOCKSIZE.
FBLOCKSIZESets the file blocksize - all IO will start at a file-offset that is an integer multiple of FBLOCKSIZE.
RMODSets the degree of simultaneous reading - 1:RMOD processors will read at once.
WMODSets the degree of simultaneous writing - 1:WMOD processors will write at once.

运行MADbench2要求:

  • a square number of processors
  • a uniform square number of processors per gang
  • a uniform number of bins per gang
  • a scalapack blocksize that distributes some data to every processor
  • a file blocksize that is a whole number of doubles
  • a number of gangs that is exactly divisible by the read-modulus and the write-modulus
fakerth@fakerth-IdeaCentre-GeekPro-17IRB:~$ mpirun -np 4 MADbench2.x 640 80 1 8 8 4 4

MADbench 2.0 IO-mode
no_pe = 4  no_pix = 640  no_bin = 80  no_gang = 1  sblocksize = 8  fblocksize = 8  r_mod = 4  w_mod = 4
IOMETHOD = POSIX  IOMODE = SYNC  FILETYPE = UNIQUE  REMAP = CUSTOM

S_cc         0.00   [      0.00:      0.00]
S_bw         0.01   [      0.01:      0.01]
S_w          0.09   [      0.09:      0.09]
          -------
S_total      0.09   [      0.09:      0.09]

W_cc         0.01   [      0.01:      0.01]
W_bw         3.96   [      3.96:      3.96]
W_r          0.03   [      0.03:      0.03]
W_w          0.03   [      0.03:      0.03]
          -------
W_total      4.03   [      4.03:      4.03]

C_cc         0.00   [      0.00:      0.00]
C_bw         0.01   [      0.01:      0.01]
C_r          0.05   [      0.05:      0.05]
          -------
C_total      0.06   [      0.06:      0.06]


dC[0] = 0.00000e+00

环境变量

VariableAllowed ValuesDefault
IOMETHODPOSIX, MPIPOSIX
IOMODESYNC, ASYNCSYNC
FILETYPEUNIQUE, SHAREDUNIQUE
REMAPCUSTOM, SCALAPACKCUSTOM
BWEXPAny numberNone

比如我们要使用mpiio,注意是MPI,不是MPIIO,export IOMETHOD=MPIIO会报错。

fakerth@fakerth-IdeaCentre-GeekPro-17IRB:~$ export IOMETHOD=MPI
fakerth@fakerth-IdeaCentre-GeekPro-17IRB:~$ mpirun -np 4 MADbench2.x 640 80 1 8 8 4 4

MADbench 2.0 IO-mode
no_pe = 4  no_pix = 640  no_bin = 80  no_gang = 1  sblocksize = 8  fblocksize = 8  r_mod = 4  w_mod = 4
IOMETHOD = MPI  IOMODE = SYNC  FILETYPE = UNIQUE  REMAP = CUSTOM

S_cc         0.00   [      0.00:      0.00]
S_bw         0.01   [      0.01:      0.01]
S_w          0.09   [      0.09:      0.09]
          -------
S_total      0.10   [      0.10:      0.10]

W_cc         0.01   [      0.01:      0.01]
W_bw         3.96   [      3.96:      3.96]
W_r          0.03   [      0.03:      0.03]
W_w          0.03   [      0.03:      0.03]
          -------
W_total      4.03   [      4.03:      4.03]

C_cc         0.00   [      0.00:      0.00]
C_bw         0.01   [      0.01:      0.01]
C_r          0.03   [      0.03:      0.03]
          -------
C_total      0.04   [      0.04:      0.04]


dC[0] = 0.00000e+00

Github

https://github.com/fakerst/application

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/608598.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件技术主要学什么课程

软件技术专业主要学习的课程和内容有编程语言、数据结构与算法、数据库技术等&#xff0c;以下是上大学网( www.sdaxue.com)整理的软件技术主要学什么课程&#xff0c;供大家参考&#xff01; 编程语言&#xff1a;掌握一种或多种编程语言&#xff0c;如C#、Java、Python、C等&…

Python 2.x与Python 3.x:初学者该如何选择?

自从Python在1994年首次发布以来,已经经历了多个版本的更新和改进。Python 1.x虽然在发展史上具有重要意义,但早已过时,不再用于实际开发。2000年发布的Python 2.x和2008年发布的Python 3.x则成为了Python家族中最常用的两个版本,形成了一个重要的分界线。特别是Python 3.x…

GPU通用计算介绍

谈到 GPU &#xff08;Graphics Processing Unit&#xff0c;图形显示卡&#xff09;大多数人想到的是游戏、图形渲染等这些词汇&#xff0c;图形处理确实是 GPU 的一大应用场景。然而人们也早已关注到它在通用计算上的巨大潜力&#xff0c;并提出了 GPGPU (General-purpose co…

本地搭建hydra服务用go以验证oidc流程

目录 1、docker搭建hydra&#xff0c;环境配置&#xff1a; 2、搭建完成后服务调用&#xff1a; 2.1保证服务正常启动&#xff1a; 2.2 通过postman调用&#xff0c;获取client_id&#xff1a; 2.3 通过client_id&#xff0c;实现oauth2/auth调用 3. 通过go语言实现oidc验…

jsp 实验12 servlet

一、实验目的 掌握怎样在JSP中使用javabean 二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握servlet的用法。【参考课本 上机实验1 】 三、源代码以及执行结果截图&#xff1a; 源代碼&#xff1a; inputVertex.jsp&#xff1a; <% page lang…

免费思维13招之四:主副型思维

免费思维13招之四:主副型思维 本节,给你分享一下产品型思维的第二种子思维:主副型思维 什么是主副型思维呢?传统的主副型思维是指对企业的核心、利润最高的产品进行收费,一些附加品、延伸产品进行让利,赠送给客户。 但是这早已过时了,现在升级之后的产品型思维,就是将…

​​​​【收录 Hello 算法】4.4 内存与缓存

目录 4.4 内存与缓存 4.4.1 计算机存储设备 4.4.2 数据结构的内存效率 4.4.3 数据结构的缓存效率 4.4 内存与缓存 在本章的前两节中&#xff0c;我们探讨了数组和链表这两种基础且重要的数据结构&#xff0c;它们分别代表了“连续存储”和“分散存储”两种物理…

如何防止WordPress网站内容被抓取

最近在检查网站服务器的访问日志的时候&#xff0c;发现了大量来自同一个IP地址的的请求&#xff0c;用站长工具分析确认了我的网站内容确实是被他人的网站抓取了&#xff0c;我第一时间联系了对方网站的服务器提供商投诉了该网站&#xff0c;要求对方停止侵权行为&#xff0c;…

16【PS Aseprite 作图】图像从Aseprite传输到PS

【内容背景】Aseprite很适合做像素图&#xff0c;有一个“完美像素”的选项&#xff0c;就不用在PS里面慢慢修线&#xff0c;能够省事很多 【具体操作】 勾选完美像素 Aseprite里面的“完美像素”能够减少修线的步骤&#xff0c;在“作图”的时候一定要注意勾选 导出 选择…

【全开源】Java线上云酒馆单预约系统源码小程序源码

核心功能&#xff1a; 座位预约&#xff1a;用户可以通过该系统提前预约酒馆的座位&#xff0c;选择就餐时间和人数&#xff0c;以及特殊座位&#xff08;如包厢、卡座等&#xff09;&#xff0c;确保到店后有合适的座位。酒水点餐&#xff1a;用户可以在预约的同时&#xff0…

OSError: image file is truncated (36 bytes not processed)解决方案

错误原因&#xff1a; 图像文件被损坏 解决方案&#xff1a; 代码开头添加如下两行代码&#xff1a; from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IMAGES True

ETL工具kettle(PDI)入门教程,Transform,Mysql->Mysql,Csv->Excel

什么是kettle&#xff0c;kettle的下载&#xff0c;安装和配置&#xff1a;ETL免费工具kettle(PDI)&#xff0c;安装和配置-CSDN博客 mysql安装配置&#xff1a;Linux Centos8 Mysql8.3.0安装_linux安装mysql8.3-CSDN博客 1 mysql -> mysql 1.1 mysql CREATE TABLE user_…

RS2227XN功能和参数介绍及PDF资料

RS2227XN是一款模拟开关/多路复用器 品牌: RUNIC(润石) 封装: MSOP-10 描述: USB2.0高速模拟开关 开关电路: 双刀双掷(DPDT) 通道数: 2 工作电压: 1.8V~5.5V 导通电阻(RonVCC): 10Ω 功能&#xff1a;模拟开关/多路复用器 USB2.0高速模拟开关 工作电压范围&#xff1a;1.8V ~ 5…

【AIGC】重塑未来的科技巨轮

AIGC&#xff1a;重塑未来的科技巨轮 一、AIGC&#xff1a;从历史走来&#xff0c;向未来进发二、AIGC的三项核心技术三、AIGC的应用与未来 在当今科技飞速发展的时代&#xff0c;AI&#xff08;人工智能&#xff09;已经成为了一个无法忽视的热词。而与其紧密相连的AIGC&#…

01-01-4

1、字符的大小写转换 对应的代码&#xff1a; D:\Book\数据类型与运算符\数据类型与运算符\5、字符的大小写转换 int main() {char c a;//现在是小写字母a&#xff0c;要变为大写字母A。虽然赋值是字符a&#xff0c;但是本质上是将该字符对应的ASCII值放到该变量中c c - 3…

QAnything 在mac M2 上纯python环境安装使用体验(避坑指南)

这是一篇mac m2本地纯python环境安装 qanything的文章。安装并不顺利&#xff0c;官方提供的模型无法在本地跑。 这篇文章记录了&#xff0c;使用xinference来部署本地模型&#xff0c;并利用openAi的通用接口的方式&#xff0c;可以正常使用。 记录了遇到的所有的问题&#xf…

新手做抖音小店,卖什么最容易出单?抖音必爆类目来了!

哈喽&#xff01;我是电商月月 新手做抖音小店没有经验&#xff0c;也不了解市场需求&#xff0c;最好奇的就是&#xff1a;卖什么商品最容易出单&#xff0c;还在犹豫的朋友可以看看这五种类目&#xff0c;在2024年下半年必定火爆一次 一&#xff0e;生活电器类 天气炎热&a…

正点原子Linux学习笔记(六)在 LCD 上显示 jpeg 图像

在 LCD 上显示 jpeg 图像 20.1 JPEG 简介20.2 libjpeg 简介20.3 libjpeg 移植下载源码包编译源码安装目录下的文件夹介绍移植到开发板 20.4 libjpeg 使用说明错误处理创建解码对象设置数据源读取 jpeg 文件的头信息设置解码处理参数开始解码读取数据结束解码释放/销毁解码对象 …

30分钟彻底了解Flutter整个渲染流程(超详细)

30分钟彻底了解Flutter整个渲染流程[超详细] 从运行第一行代码出发WidgetsFlutterBinding初始化了一堆娃 三个中流砥柱SchedulerBindingRendererBindingWidgetsBinding 申请Vsync流程下发Vsync承接Vsync 从运行第一行代码出发 void main() {runApp(const MyApp()); }void runA…

卡码网模拟笔试题第十六期 |

A、构造二阶行列式 数字不大&#xff0c;直接四重循环暴力枚举 #include <iostream> using namespace std;int main() {int x;cin >> x;for (int i 1; i < 20; i) {for (int j 1; j < 20;j) {for (int x1 1;x1 < 20;x1) {for (int y 1;y<20;y){if…
最新文章