- 博客(28)
- 收藏
- 关注
原创 使用超算遇到的麻烦
编写c++代码,所有的成员变量是vector和eigen里的matrix。在50个节点跑程序没有问题,但是在1200个节点有问题,并且是发生在MPI_Finalize之后出现了segmentation fault。段错误是发生在我所有进程运算结束之后,唯一可能的问题就是我这里使用的类的析构问题。这里本来vector和matrix不需要自己手动析构的,但是我这里用了三维的vector,他可能自己析构有些问题。因此我手动写了析构函数,就不会报错了。...
2021-07-29 10:12:39 260
原创 Git 我自己的操作
这里写自定义目录标题在Gitlab上操作操作在Gitlab上操作尽管我的GitHub与gitlab账号不同,但是这不影响,只要有ssh key就行操作git initgit status 查看状态git log 查看日志使用git reset --hard commitID可以回退到你之前的版本...
2021-06-27 19:23:21 173
原创 sinkhorn algorithm
abstractsinkhorn knopp algorithm compute D1D_1D1 and D2D_2D2 iteratively normalizing all rows and all columns in AAA.根据一个非负矩阵AAA得到一个双重随机矩阵double stochastic matrix。通过对矩阵AAA进行交替缩放AAA的行和列,使用两个主对角线正矩阵D1D_1D1、D2D_2D2使得B=D1AD2B=D_1AD_2B=D1AD2其中BBB是双重
2021-01-08 10:56:51 3653
原创 EDAS投稿pdf格式问题
交hpcc时,在edas上传的时候遇到关于margin和gutter的问题因为我是直接用的\documentclass[conference]{IEEEtran}后来看网上说美国要用letterpaper,欧洲是用的a4paper所以把论文格式部分改成\documentclass[conference,letterpaper]{IEEEtran}\usepackage[left=0.75in, right=0.75in, bottom=1in, top=0.75in]{geometry}\col
2020-09-26 10:43:04 831 1
原创 装库遇到的问题linux
今天装ParTI库的时候,遇到一些问题./build.sh会遇到识别不了library,这个时候,利用软链接动态库和头文件用export加入环境变量只要遇到这种找不到库和头文件的就这样搞再到做可执行文件中,可能会遇到识别不到函数,用ldd查找缺少的动态库,用软连接放到对应的文件夹中软链接在编译的过程中,会需要自己来设置预编译#define PARTI_USE_OPENMP#define PARTI_USE_CUDA...
2020-09-26 10:39:56 549
原创 ieee会议latex模板,伪代码写法
%\usepackage{algorithmic}% algorithmic.sty was written by Peter Williams and Rogerio Brito.% This package provides an algorithmic environment fo describing algorithms.% You can use the algorithmic environment in-text or within a figure% environment to
2020-07-01 15:59:01 4788 1
原创 二级指针memcpy问题
今天用memcpy对二级指针进行赋值,怎么做都不对。以下写法gcc编译通过,但是一开始执行就不对size_t **a;//在函数外初始化,a作为参数传入函数/*下面是函数体内*/size_t **b;//省略初始化过程,每个空间大小为row*col*sizeof(size_t)=nmemcpy(a[0],b[0],n);memcpy(&a[0][0],&b[0][0]...
2020-04-30 00:39:17 821 1
原创 cudaError总结
code:1,reason:invalid argument使用cudaHostRegister时,报了以上错误。是因为我在使用streams时,由于数据量小于流的数量,所以有些流没分到数据,所以里面的cudaHostRegister里面的参数是空的。...
2020-04-11 22:41:58 1078
原创 剑指offer面试题09. 用两个栈实现队列
class CQueue {public: stack<int> a; stack<int> b; CQueue() { } void appendTail(int value) { a.push(value); } int deleteHead() { ...
2020-02-16 19:28:51 138
原创 剑指offer面试题07. 重建二叉树
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas...
2020-02-16 19:05:48 131
原创 剑指offer面试题06. 从尾到头打印链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: vector<in...
2020-02-15 20:09:21 100
原创 剑指offer面试题05. 替换空格
class Solution {public: string replaceSpace(string s) { string a=""; for(int i=0;i<s.length();i++) { if(s[i]==' ')a+="%20"; else a+=s[i]; ...
2020-02-15 19:55:55 123
原创 剑指offer面试题04. 二维数组中的查找
class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { if(matrix.size()==0)return false; int a; int row=0; int...
2020-02-14 11:03:15 110
原创 剑指offer面试题03. 数组中重复的数字
class Solution {public: int findRepeatNumber(vector<int>& nums) { sort(nums.begin(),nums.end());//先全部排序,再找是否重复 for(int i=0;i<nums.size()-1;i++) { ...
2020-02-14 10:24:13 280
原创 《并行程序设计导论》05openmp
生产者和消费者问题生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。消息传递生产者和消费者问题模型的另一...
2020-02-12 16:54:49 710
原创 《并行程序设计导论》04openmp
循环调度parallel for指令中,将各次循环分配给线程的操作是由系统完成的。然而,大部分openmp实现只是粗略地使用块分割。一个更好的分配方案是轮流分配线程的工作(循环划分)。在循环划分中,歌词迭代被轮流地一次一个地分配给线程。不难发现,一个好的迭代分配能够对性能有很大的影响。在openmp中,将循环分配给线程称为调度,schedule子句用于在parallel for或者for指令中进...
2020-02-12 16:50:40 443
原创 《并行程序设计导论》03openmp
更多关于Openmp的循环:排序冒泡排序for(list_length=n;list_length>=2;list_length--){ for(i=0;i<list_length-1;i++) { if(a[i]>a[i+1]) { tmp=a[i]; a[i]=a[i+1];...
2020-02-12 16:47:44 521
原创 《并行程序设计导论》02 openmp
变量的作用域在oenmp中,变量的作用域涉及在parallel块中能够访问该变量的线程集合。一个能够被线程组中的所有线程访问的变量拥有共享作用域,而一个只能被单个线程访问的变量拥有私有作用域。在trap函数中被每个线程使用的变量在线程的栈中分配,因此变量有私有作用域。在main函数中声明的变量对于所有线程组中被parallel指令启动的线程都是可以访问的。因此在parallel块之前被生命的变...
2020-02-12 16:45:36 759
原创 《并行程序设计导论》01openmp
预备知识Openmp提供“基于指令”的共享内存API。这意味着在c和c++中,有一些特殊的预处理器指令pragma。不支持pragma的编译器就会忽略pragma指令提示的那些语句,这样就允许使用pragma的程序在不支持他们的平台上运行。因此,在理论上,如果你仔细编写一个openmp程序,他就能够在任何有c编译器的系统上被编译和运行,无论编译器是否支持openmp。一个使用openmp的he...
2020-02-12 16:39:50 699
原创 linux程序设计读书笔记第一章入门
1.1 unix、linux和GNU简介linux的成功要归功于在他之前诞生的系统和应用程序–UNIX和GNU软件。本届将介绍Linux是怎样产生的,以及它植根于何处。1.1.1什么是UNIX现在已经成为一种非常流行的多用户多任务操作系统。适用范围从pc工作站到多处理器服务器和超级计算机。1.unix简史unix是由open group管理的一个商标,它指的是一种遵循特定规范的计算机操作...
2020-01-22 14:34:26 282
原创 《并行程序设计导论》mpi并行归并算法
这里用了二分法和归并排序 #include <stdio.h>#include<stdlib.h>#include<mpi.h>double* readata(double* data, int n, int my_rank, int comm_sz){ if (my_rank == 0) { FILE* fp; fp ...
2019-11-01 19:14:32 1161 1
原创 《并行程序设计导论》06mpi思维改变
本章是看书练习,理清思路梯形积分法mpi程序的第一版int main(void){ int my_rank,comm_sz,n=1024,local_n; double a=0.0,b=3.0,h,local_a,local_b; double local_int,total_int; int source; MPI_Init(NULL,NULL);//通信子初始化 MPI_Co...
2019-10-31 19:56:08 192
原创 《并行程序设计导论》 mpi中集合通信
#通信类型##mpi点对点通信,分为阻塞型和非阻塞型blocking阻塞型通信函数需要等待指定的操作实际完成,或所涉及的数据被MPI系统安全备份后才返回,如MPI_Send和MPI_Recv函数非阻塞型通信函数总是立刻返回,实际操作由mpi后台进行完成,需要调用其它函数来查询通信是否完成,如MPI_ISend和MPI_IRecv函数##mpi集合通信是一个进程组中的所有进程都参加的全局通...
2019-10-18 00:12:34 891
原创 《并行程序设计导论》mpi中I/O处理
1.输出几乎所有的MPI实现都允许MPI_COMM_WORLD里的所有进程都能访问标准输出stdout和标准错误输出stderr。但大部分的MPI实现并不提供对这些I/O设备访问的自动调度。也就是说如果多个进程试图写标准输出stdout,那么这些进程的输出是无法预测的,甚至会发生一个进程的输出被另一个输出打断的情况。产生这一现象的原因是MPI进程在相互竞争,以取得对共享输出设备,标准输出std...
2019-10-06 21:08:59 628
原创 我的并行编程02 修改阿里yum并在centos上安装MPI
打开usr文件夹从里面进入终端,然后root模式yum list mpich*,查看MPI可安装的版本,我是直接全部安装sudo yum install -y mpich*设置环境变量sudo find / -name "mpicc" 查看到安装路径vim ~/.bashrcexport PATH=$PATH:/usr/lib64/mpich/bin/sudo gedit ~...
2019-10-06 11:16:12 375
原创 《并行程序设计导论》 mpi编写hello
在消息传递程序中,运行在一个核-内存上的程序 通常称为一个进程。两个进程可以通过调用函数来进行通信。我们将使用消息传递的实现称为消息传递接口(Message-Passing Interface,MPI)。它是一个函数库#include<mpi.h>用$开头的,我是用的linux的终端写的,在root模式下其余的都是普通的.c文件内容编译(成为可执行文件exe格式)$mpicc...
2019-10-06 10:54:48 1310
原创 我的并行编程01 安装centos7
我的并行编程01 安装centos7一开始我是不想装linux的,但是我在windows下mingw和mpich的时候好像搞得不清楚,删了写东西,结果新的又下不了。所以直接装虚拟机的了。附上网盘连接,注意,里面已经有虚拟机了,不用再下。https://pan.baidu.com/s/1GIBzfvsSb4g0kV_MZ4xgUw...
2019-09-29 18:08:14 280
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人