
并行与分布式
文章平均质量分 84
白水baishui
天光乍破
展开
-
CUDA C/C++ 教程一:加速应用程序
文章目录1. CUDA简介2. 准备工作3. 加速系统4. 编写在GPU运行的代码4.1. 编写一个Hello GPU核函数5. CUDA线程的层次结构5.1. 启动可并行运行的核函数6. CUDA提供的线程层次结构变量6.1. 线程和块的索引6.2. 加速for循环6.3. 协调并行线程7. 分配将要在GPU和CPU上访问的内存1. CUDA简介加速计算正在逐步取代 CPU 计算,成为最佳的计算做法。近年来加速计算带来了越来越多的突破性进展,应用程序对加速计算日益增长地需求、轻松编写加速计算的程序的.原创 2022-02-22 09:08:44 · 27947 阅读 · 7 评论 -
分布式互斥算法Lamport 算法和Ricart-Agrawala 算法
1. 分布式互斥算法的概念分布式互斥算法,就是在分布式系统中,通过某种消息传递算法来决定,控制哪个进程可以访问临界区资源。如何去评价分布式互斥算法是否达到了这个目的呢?于是就定义出了三个算法指标:ME1 安全性至多一个进程在使用临界区,不会有多个进程同时在临界区执行;ME2 活性不会发生死锁、饿死现象;ME3 公平性进程顺序执行(FIFO),先到先进。能满足这三个条件的算法,就是一个良好的分布式互斥算法。2. Lamport 算法某个进程 pip_ipi 请求临界区时,会先向所有原创 2021-12-10 00:27:34 · 4822 阅读 · 4 评论 -
分布式系统的特征
文章目录1. 分布式系统的时间1.1. 计算机时钟1.2. 时间同步1.3. 分布式系统的时间分类2. 同步系统的时间同步2.1. Cristian外部同步方法2.2. Berkeley内部同步方法3. 网络时间协议 NTP3.1. NTP的设计目标3.2. NTP的体系结构3.3. NTP的同步方式4. 时钟算法4.1. 事件排序4.2. Lamport逻辑时钟4.3. 向量时钟5. 观察全局状态5.1. 全局状态定义5.2. 观察分布式系统的全局状态的必要性5.3. 观察系统全局状态的困难性5.4. 割原创 2021-10-30 13:00:11 · 370 阅读 · 0 评论 -
分布式系统的进程交互
文章目录1. 进程交互2. 覆盖网络1. 进程交互目前已有的交互机制操作系统提供的单机内部进程间通信机制命名管道(Named Pipe)、信号量(Semaphore)、信号(Signal)、共享内存(Shared Memory)网络层提供的多机间的进程间通信机制基于套接字(Socket)的IPC机制当上述方法在分布式系统中不适用,在分布式系统中,数据传递是基于覆盖网络(overlay network,也称应用层网络)的,拥有点对点、多播/组播、广播三种数据传递方式。2. 覆盖网络覆盖网原创 2021-10-28 23:20:54 · 406 阅读 · 0 评论 -
分布式系统的进程组织
文章目录1. 进程和线程2. 非分布式系统中的线程2.1. 最佳线程池大小3. 分布式系统中的线程1. 进程和线程进程在分布式系统中形成一个构建块,由操作系统维护,对用户来说,它是不可见的(透明)。一个进程中允许有多个控制线程:进程上下文线程上下文地址空间列表优先级和执行状态通信接口处理器寄存器信号量,以及其他同步对象软件中断处理信息线程标识符列表执行环境标识符进程的缺点:在单线程进程中,每当阻塞I/O 系统调用被执行时,整个进程都会被阻塞;原创 2021-10-24 14:35:06 · 386 阅读 · 0 评论 -
Linux上C++与CUDA混合编程
为了更好地说明如何在Linux实现C++与CUDA的混合编程,我接下来将以实现对一个矩阵的每一个元素的取模运算。1. 头文件和文件形式要在C++中编写CUDA代码,需要引入头文件:#include "cuda_runtime.h"#include "cublas_v2.h"#include "device_launch_parameters.h"然后将文件后缀由.cpp改为.cu2. 搭建程序框架一个CUDA程序的框架类似于普通C++程序,下面我们来展示其中一种简单的形式:// mod_原创 2021-10-09 18:35:38 · 4343 阅读 · 1 评论