自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

转载 std::sort导致内存崩贵

转载自:一次stl sort调用导致的进程崩溃include <algorithm>bool comp(int d1, int d2){ return d1 >= d2;}const int N = 50;int main(){ int d[N]; for(int i = 0; i < N; ++i) { d[i] = 20; } std::sort(d, d + N, comp); ret

2022-03-23 17:56:44 554

转载 mpi关于send/receive的顺序问题

引用(MPI buffered send/receive order)I’m using MPI (with fortran but the question is more specific to the MPI standard than any given language), and specifically using the buffered send/receive functions isend and irecv. Now if we imagine the following sce

2021-10-27 19:46:22 474

原创 C++中常用函数 (持续更新ing...)

List item

2021-10-22 15:49:54 142

原创 C++实现生产者消费者

为应对系统的通信上消息收发的高耦合度,在接受和发送消息后设计一个缓存队列,并使用多线程生产者-消费者来进行收发解耦。避免通信上的拥堵情况。利用C++内置函数实现生产者-消费者功能:private: std::deque<T> queue_; //缓存队列 size_t size_limit_; //缓存队列大小的限制 std::mutex lock_; //互斥锁 std::condition_variable empty_, full_; //并发条件变量类 s

2021-10-22 15:26:47 3072 1

原创 阿里云上为服务器申请外网网卡并绑定公网ip

在阿里云上创建ECS实例的时候,云会自动配置公网ip和内网ip。但实质在该ECS实例上只有内网ip,可以通过ifconfig进行查看,如下图:eth0是一个内网网卡,上面绑定的是内网的ip。其工作原理应该是在一个数据中心中,使用更加快速的内网来通信。而该数据中心与外部链接应该通过一个交换机类的服务器,将内网ip转换成对应的外网ip。所以,内网ip绑定在ECS上,而外网ip并没有在本机上,而是绑定在数据中心的专属服务器上,方便统一管理。但是有些应用需要通过本机网卡来读取公网ip进行一系列的操作,例如MPI

2021-10-18 15:46:52 4582

转载 C++堆栈

一般的由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)。2、堆区(heap)。3、静态数据区(全局)。5、程序代码区。那在多线程环境下的堆栈是如何分配的呢?我们只需要记住以下两点:每个线程一个栈,每个进程一个堆。请看典型的内存分布图。不同的段可能被加载器映射到相距很遥远的位置。 变量在内存地址的分布为:堆-栈-代码区-全局静态-常量数据 同一区域的各变量按声明的顺序在内存的中依次由低到高分配空间(只有未赋值的全局变量是个例外)。 全局变量和

2021-10-17 16:57:17 483

原创 Openmpi4.0版本的安装和集群多机器执行问题的解决方法

Openmpi的官方下载地址:hereOpenmpi4.0版本的安装解压文件并进行配置tar -xvf openmpi-4.1.1.tar.gzcd openmpi-4.1.1./configure --prefix="/usr/local/openmpi"安装make -jsudo make install配置环境:vim ~/.bashrc 或者 vim /etc/profile 均可以export PATH="$PATH:/usr/local/openmpi/bi

2021-10-17 16:53:43 3060

转载 SSH配置免密登录方法

转载自https://blog.csdn.net/jeikerxiao/article/details/841055291.客户端生成公私钥本地客户端生成公私钥:(一路回车默认即可)ssh-keygen上面这个命令会在用户目录.ssh文件夹下创建公私钥cd ~/.sshls下创建两个密钥:id_rsa (私钥)id_rsa.pub (公钥)2.上传公钥到服务器这里测试用的服务器地址为:192.168.235.22用户为:rootssh-copy-id -i ~/.ssh/id

2021-10-16 15:41:19 6633 2

转载 关于ubuntu分区挂载

转载自https://blog.csdn.net/u010409517/article/details/88081911一、硬盘分区1.查看硬盘及所属分区情况sudo fdisk -lu如图显示,我们对200G硬盘进行分区,现在已经分区80G的vda12.对硬盘进行分区sudo fdisk /dev/sdb如下图所示,可按m获取帮助:3.在提示符后面输入n,然后输入p,设置主分区,分区号输入,起始块默认,终止块大小自己定义。也可以选择默认。4.输入p,显示分区表,120G的新分区5

2021-08-27 08:07:10 3087

原创 关于ubuntu18.04有网卡但是ifconfig不显示问题的解决方法

阿里云部署服务器的时候出现ifconfig没有网卡信息的问题,导致ssh连接不上,使用sudo dhclient eth0也只能在本次机器启动生效。所以需要将指令写到开机启动服务里边。使用https://www.cnblogs.com/airdot/p/9688530.html提供方法设置启动服务。rc.lcoal 里边写:#!/bin/sh -e## rc.local## This script is executed at the end of each multiuser runleve

2021-08-26 19:02:55 1748

原创 ubuntu下ifconfig不显示网卡,使用dhcp进行配置

在使用阿里云服务器的时候,配置弹性外网网卡或者ssh登录服务器的时候,可能出现由于ifconfig中没有配置的网卡而产生相应的错误。这时候就可以使用dhcp进行网卡配置。#假设要配置的网卡为eth1,sudo vim /etc/network/interfacesauto eth1iface eth1 inet dhcp之后运行sudo dhclient eth1然后查看ifconfig,就可以看到eth1网卡的信息了!...

2021-08-16 16:49:34 2502

转载 ubuntu安装mpich3

转载自https://blog.csdn.net/qq_39451578/article/details/107938560

2021-08-02 13:42:50 192

原创 Ubuntu 安装LLVM

在部署galois时,需要安装libllvm (>= 7.0 with RTTI support),但是如果使用直接编译好的,则并不会对RTTI提供支持。因此选择下载源代码自己编译安装,并设置-DLLVM_ENABLE_RTTI=ON下面介绍直接编译好的与源代码安装的教程:参考自:https://blog.csdn.net/qq_32460819/article/details/108449344一、下载已编译的包:LLVM官网如图操作配置环境即可。二、下载源文件自己编译:下载地址:版本

2021-07-29 10:28:31 3021

原创 ubuntu安装g++/gcc 7版本

安装gcc-7/g++ -7sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get updatesudo apt-get install gcc-7sudo apt-get install g+±7修改本地gcc/g++版本,首先设置优先级sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100sudo update-alternat

2021-07-26 20:03:02 3902

转载 numa架构下socket、node、cpu thread的关系

转载自:https://blog.csdn.net/envy13/article/details/80241886socket node cpu thread的关系socket ⇄ nodesocket是一个物理上的概念,指的是主板上的cpu插槽。node是一个逻辑上的概念,对应于socket。core ⇄ 物理cpucore就是一个物理cpu独立的硬件执行单元。thread ⇄ 逻辑cpu一个机器上总共有多少个逻辑cpu(core),则其有相对应个thread。如上图:拥有两个cpu

2021-07-22 14:52:22 2296

转载 系统内核函数mmap

转载自:https://www.cnblogs.com/huxiao-tee/p/4660352.html#_label41、概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以

2021-07-22 11:11:25 212

原创 C++ 匿名函数

1.概念:C++11提供了类似与Python的lambda表达式的方式,称为匿名函数,其好处是:使用匿名函数,可以免去函数的声明和定义。这样匿名函数仅在调用函数的时候才会创建函数对象,而调用结束后立即释放,所以匿名函数比非匿名函数更节省空间。2.详解其表达形式如下:capture->return-type{body}如果没有参数,空的圆括号()可以省略.返回值也可以省略,如果函数体只由一条return语句组成或返回类型为void的话.形如:capture{body} Lambda函数可

2021-07-22 10:13:20 1449

转载 Ubuntu gcc安装及切换

ubuntu安装gcc5.4版本,亲测有效!Ubuntu18.04 gcc,g++ (4.8,5,7.4 )安装及切换一般操作如下(详细操作见上面的两篇博客):在这里插入代码片# 1.see your versiongcc --version # 2.sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo apt-get update# 3. 查看你可以安装的gcc5版本apt-cache policy gcc-5# 4.根据上面的

2021-07-21 15:57:29 762

原创 C++内联函数( inline)详解

函数的使用避免了代码的重写,进而减小了程序的体积。但是函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中,最后才跳转到函数内部执行。这个过程是要耗费时间的。此外,函数执行 return 语句返回时,需要从栈中回收形参和局部变量占用的存储空间,然后从栈中取出返回地址,再跳转到该地址继续执行,这个过程也要耗费时间。一般情况下,这个开销可以忽略不计,但是当函数体较为简单并且被大量重

2021-07-21 15:45:21 287

转载 ubuntu建立本地仓库并上传到gitee

转载自:原文链接:https://blog.csdn.net/weixin_45146520/article/details/1090082821、新建本地工程仓库目录2、使用命令使文件夹为本地仓库:git init3、新建并获取gitee的仓库地址,git结尾,然后使用如下命令绑定:(推荐使用ssh,http需要每次输出用户名密码)git remote add origin 你的仓库git地址如果这时候提示有报错,已经存在绑定,则使用下面命令解除绑定再执行上一步命令:git remote

2021-07-20 16:56:16 343

转载 解决Ubuntu在安装某个软件时依赖包的版本过高问题

在安装Maiter时:  sudo apt-get install libboost-thread-dev出现错误:libboost-system1.58-dev : 依赖: libboost-system1.58.0 (= 1.58.0+dfsg-5ubuntu3) 但是 1.58.0+dfsg-5ubuntu3.1 已安装。因为依赖libboost-system1.58.0安装版本过高,具体做法是安装sudo apt-get install aptitude解释一下 apt...

2020-11-12 16:36:03 788

原创 MPI实现并行pagerank

参数src_proc确定了发送进程的编号。首先对所需要的跳跃矩阵,PR矩阵进行初始化,代码如下,由0进程负责数据的加载和初始化,然后使用MPI_Scatter将原数据分块后分散到各个进程中去。函数接口MPI_Scatter()是一对多的发送接口,而MPI_Gather()则是多对一的发送接口了,由各个进程计算完成后使用MPI_Gather()将计算结果发送给进程0做最后的汇总。对于0进程调用MPI_Scatter为发送数据块给各个进程,对于其他进程,MPI_Scatter是接受0进程发送的数据块。

2019-09-27 19:38:51 1454 1

空空如也

空空如也

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

TA关注的人

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