摘要: 实现一个计算pi的小程序,探索hip+mpi+fortran的编译链接方式 有fortran文件、hip.cpp文件、C文件(嵌入mpi),其中, c文件调用fortran文件中的函数和hip.cpp文件中的函数。每个文件单独编译,最终用mpif90链接在一起。.c文件用mpicc编译,.f90文件 阅读全文
posted @ 2021-08-25 12:34 赶紧学习 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 简明 VIM 攻略 第一级 i → Insert 模式,按 ESC 回到 Normal 模式. x → 删当前光标所在的一个字符。 :wq → 存盘 + 退出 (:w 存盘, :q 退出) (注::w 后可以跟文件名) :x → 存盘 + 退出 dd → 剪切当前行 p → 粘贴剪贴板 hjkl ( 阅读全文
posted @ 2021-08-25 12:27 赶紧学习 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 源文件 // mpi_AxB.c #include "mpi.h" #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> const int rows = 10; //the rows of 阅读全文
posted @ 2021-08-25 12:21 赶紧学习 阅读(1250) 评论(0) 推荐(0) 编辑
摘要: Linux MPI+CUDA混编 源文件(main.cpp pi_cu.cu) main.cpp #include <mpi.h> #include <stdio.h> #include <stdlib.h> #define NBIN 10000000 // Number of bins #defi 阅读全文
posted @ 2021-08-25 12:19 赶紧学习 阅读(581) 评论(0) 推荐(0) 编辑
摘要: Linux MPI+HIP混编 源文件: pi_hip.cpp #include<stdio.h> #include<stdlib.h> #include <hip/hip_runtime.h> #define NBIN 10000000 // Number of bins #define NUM_ 阅读全文
posted @ 2021-08-25 12:18 赶紧学习 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 查看作业状态 查看当前用户的作业状态,可以使用如下命令: squeue 例如: JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 33762 normal nstest1 wangwu R 0:03 2 h05r4n[15-16] 参数 阅读全文
posted @ 2021-08-25 12:15 赶紧学习 阅读(935) 评论(0) 推荐(0) 编辑
摘要: 拷贝构造函数 思考 拷贝构造函数的定义? 什么时候调用拷贝构造函数? 拷贝构造函数如何实现? 拷贝构造函数回顾: 定义: 拷贝构造函数与普通构造函数基本相同,只是参数上有严格要求:(1)要加const ;(2)传入的是引用,且是一个对象; 如果没有自定义拷贝构造函数,系统会自动生成一个默认的拷贝构造 阅读全文
posted @ 2021-08-25 12:07 赶紧学习 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 对象成员指针 概念: 对象成员是指一个类的对象是另一个类的数据成员。 对象成员指针是指,指向一个类的对象的指针作为另一个类的数据成员(强调:只是一个指针,而不是一个对象) 实例:坐标类和线段类 /***************** 定义 Coordinate 类 *****************/ 阅读全文
posted @ 2021-08-25 12:06 赶紧学习 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 成员对象 一个类的数据成员是另一个类的对象,就叫做成员对象。 思考: 1:成员对象初始化和销毁时的调用顺序? 2:如何用带有参数的构造函数初始化成员对象? 重要结论: 实例化对象A时,如果对象A有对象成员B,那么先执行B的构造函数,再事项A的构造函数。 如果对象A有对象成员B,那么销毁对象A时,先执 阅读全文
posted @ 2021-08-25 12:05 赶紧学习 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 常对象成员 和 常成员函数 定义两个类: 坐标类:Coordinate 数据成员:横坐标m_iX、纵坐标m_iY 成员函数:构造函数、析构函数、数据封装函数 线段类:Line 数据成员:点A m_CoorA、点B m_CoorB 成员函数:构造函数、析构函数、数据封装函数、信息打印函数 源代码 #i 阅读全文
posted @ 2021-08-25 12:01 赶紧学习 阅读(43) 评论(0) 推荐(0) 编辑
摘要: this指针 概念 this指针的作用:避免函数参数与数据成员重名 this指针就是指向对象自身数据的指针,代表对象本身的地址 成员函数通过this指针访问到对应的数据成员。 编译时,编译器自动为每个参数列表都加了this指针,所以程序员可以省略参数列表中的this指针 实例 定义一个Array类 阅读全文
posted @ 2021-08-25 11:59 赶紧学习 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 概念 参考链接 存储带宽:在一定时间内从DRAM读出或写入的数据量 延迟:响应一个获取内存的请求所花费的时间,这个时间通常是上百个处理器周期 SM, SP, Grid, Block, thread, warp: SM,SP是硬件结构; Grid, Block, thread是软件概念 从硬件角度讲: 阅读全文
posted @ 2021-08-25 11:53 赶紧学习 阅读(335) 评论(0) 推荐(1) 编辑
摘要: 共享存储器 share memory是MP拥有的资源,因为它是一个片上存储器,所以访问共享存储器比本地存储器和全局存储器要快得多。实际上共享存储器的延迟大约比没有缓存的全局存储器低100倍(假设线程之间没有bank冲突)。共享存储器被分配给每个线程块,所以块内的线程可以访问同一个共享存储器。线程可以 阅读全文
posted @ 2021-08-25 11:51 赶紧学习 阅读(1304) 评论(0) 推荐(1) 编辑
摘要: 逻辑上,CUDA中所有thread是并行的,但是,从硬件的角度来说,实际上并不是所有的thread能够在同一时刻执行,接下来我们将深入学习和了解有关warp的一些本质。 1. Warps & Thread Blocks warp是SM的基本执行单元。一个warp包含32个并行thread,这32个t 阅读全文
posted @ 2021-08-25 11:38 赶紧学习 阅读(2387) 评论(0) 推荐(0) 编辑
摘要: Tesla K20m主要参数 Total amount of global memory: 4800 MBytes (5032706048 bytes) Total amount of constant memory: 64KB(65536 bytes) Total amount of shared 阅读全文
posted @ 2021-08-25 11:22 赶紧学习 阅读(794) 评论(0) 推荐(0) 编辑
摘要: 头文件 // CUDA runtime #include <cuda_runtime.h> // helper functions and utilities to work with CUDA #include <helper_functions> #include <helper_cuda.h> 阅读全文
posted @ 2021-08-25 11:20 赶紧学习 阅读(652) 评论(0) 推荐(0) 编辑