- 博客(412)
- 资源 (116)
- 收藏
- 关注
转载 Matrix Marker稀疏矩阵文件存储格式
Matrix Market(MM)交换格式提供了一个简单的机制来促进矩阵数据的交换。具体来说,定义一个了最小的基本ASCII文件格式,它可以很容易地解释和解析,但可以很容易地适应具有更严格结构的应用程序,或扩展到相关的数据对象。矩阵的MM交换格式实际上是共享设计元素的附属格式的集合。
2022-10-23 16:29:37
1609
转载 vs2019配置pthread库,对‘pthread_create’未定义的引用。
我觉得应该是编译命令的问题,Linux编译pthread的命令为:g++ 001.cpp -lpthread -o 001.o。报错无法解析的外部符号 __imp__pthread_create时,最前面加上一行:#pragma comment(lib, “pthreadVC2.lib”) ,解决。用vs创建的Linux项目用pthread库是不行的,编译能成功可是不能运行,报错对‘pthread_create’未定义的引用。它的初始值取自调用进程环境。注意:不需要加 -l ,默认是有加 -l 的。
2022-09-18 15:53:24
1492
1
原创 C++ 多线程
多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。。多线程程序包含可以同时运行的两个或多个部分。这样的程序中的每个部分称为一个线程,每个线程定义了一个单独的执行路径。本教程假设您使用的是 Linux 操作系统,我们要使用 POSIX 编写多线程 C++ 程序。POSIX Threads 或 Pthreads 提供的 API 可在多种类 Unix POSIX 系统上可用,比如 FreeBSD、NetBSD、GNU/Linux、Mac OS X 和 Solaris。...
2022-08-30 20:15:36
390
原创 C++动态内存
很多时候,您无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。在 C++ 中,您可以使用特殊的运算符为给定类型的变量在运行时分配堆内的内存,这会返回所分配的空间地址。这种运算符即运算符。如果您不再需要动态分配的内存空间,可以使用运算符,删除之前由 new 运算符分配的内存。...
2022-08-30 19:54:20
188
转载 如何设计并实现存储QoS?
在资源充足的情况下,内部流量可以安安静静的在自己的车道上行驶,但是当资源紧张,比如业务流量突增或者持续性的高流量水位,这个时候需要限制内部流量的道理宽度,极端情况下可以暂停。资源池内部可能存在多种流量类型,如上层业务的IO流量、存储内部的数据迁移、修复、压缩等,不同的流量通过竞争的方式确定下发到硬件的IO顺序,因此无法确保某种流量IO服务质量,比如内部数据迁移流量可能占用过多的带宽影响业务流量读写,导致存储对外提供的服务质量下降,由于资源竞争结果的不确定性无法保障存储对外能提供稳定的集群环境。...
2022-08-30 17:11:17
678
转载 基于多智体强化学习的接入网络切片动态切换
以5G为代表的未来移动通信系统,将广泛采用SDN和NFV技术,通过构建软件定义的移动通信网络,为用户提供灵活按需的网络传输服务[1-2]。在软件定义的移动通信网络架构下,将采用网络切片技术,来满足多样化业务的差异化服务需求,也越来越成为研究者的共识[2-4]。每个端到端网络切片服务于网络中某一类具有特定需求的业务,在逻辑功能层面对应相互独立的端到端虚拟网络,多个切片对应的不同逻辑虚拟网络,将通过映射部署到相同的物理网络之上。当移动用户到达网络时,需要选择一个满足自身业务服务需求的切片接入网络。在实际的网络中
2022-08-28 10:15:21
949
4
原创 C++知识学习-0826
只有存在 new/malloc 出来的数据,才需要delete/free,没有用到new/malloc以及资源申请的句柄,就不需要释放。
2022-08-26 10:35:41
412
转载 稀疏矩阵格式调研
针对矩阵格式介绍的benchmark:类似于综述。这篇文章调研了2015年之前在多核共享内存系统中常见的矩阵格式。这篇文章认为,对于一个新的考虑一个针对SpMV的数据格式,仅仅使用FLOPS这样的指标是不够的,要考虑多个方面:1)FLOPS,和SpMV的执行时间相关;2)相对于CSR的执行时间;3)FLOPS占硬件极限性能的占比;4)SpMV的内存占用;5)每个非零元素的所占的平均内存;6)相对于CSR,每个非零元素的所占的平均内存;7)将CSR格式的、相对通用的格式转化为特定的新格式;...
2022-08-25 17:01:32
1099
转载 矩阵乘法的多线程实现(C++语言)
多线程矩阵的乘法,禁止不加改动用于课设,仅供参考。// multhread_martix_mul.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。// #include "pch.h"#include #include #include "windows.h"#include #include #include template class Martix...
2022-08-14 23:10:26
902
转载 论文阅读笔记系列(一)SMAT: An Input Adaptive Auto-Tuner for Sparse Matrix-Vector Multiplication—————————————
在这个表中,实现(implements)是按照特定的顺序排列的,记录中的每个性能编号都可以通过它使用的所有优化策略建立索引。这样,我们最终得到了每个优化策略的得分,然后通过对其中使用的策略的得分求和,计算出每个实现的得分。接着分析红色箭头,即在线处理的部分。而红色箭头是在线的操作,就是用户输入一个新的矩阵到SMAT后,SMAT利用离线构造好的各个功能部件对这个矩阵进行预测,选择合适的存储格式。开发了一个灵活可扩展的自动优化框架,用户可以添加新的存储格式以及实现运算的方法,增加更多的特征以及更多的数据集。..
2022-08-10 19:57:01
241
转载 深度学习通信领域相关经典论文、数据集整理分享
Anopenonlinerealmodulateddataset来自论文DeepLearningforSignalDemodulationinPhysicalLayerWirelessCommunicationsPrototypePlatform,OpenDataset,andAnalytics。随着深度学习的发展,使用深度学习解决相关通信领域问题的研究也越来越多。作为一名通信专业的研究生,如果实验室没有相关方向的代码积累,入门并深入一个新的方向会十分艰难。...
2022-07-30 16:40:13
2747
原创 如何加速矩阵乘法
矩阵的内存格式矩阵A中第i行第j列可以表示为A[i][j]。但是在系统底层的内存中,只有连续的存储空间,编译器会将高级语言的二维数组的访存转换为对一维内存的访问。将二维坐标映射成一维坐标有很多方法,直接的有两种行主序(row-majororder)和列主序(column-majororder)。简单地说,对于前面提到的A[i][j]元素,如果映射为一维数组,既可以用行主序的方式,如果一行的内存元素有lda个,则A[i][j]对应于A[i+j*lda]。的做法。利用寄存器减少访存次数。...
2022-07-25 10:34:59
1594
原创 assert _Aligns
若不定义NDEBUG,则assert将其参数(必须拥有标量类型)与零比较相等,若相等,则assert在标准错误输出上输出实现指定的诊断信息,并调用abort。诊断信息要求包含表达式的文本,还有标准宏_FILE_、_LINE_以及预定义变量_func_的值。_Aligns只能在声明不是位域,且不拥有寄存器存储类的对象时使用。若NDEBUG在包含了的源代码中的点定义为宏名,则assert不做任何事。//每一个structsse_t类型的对象会在16字节边界对齐。...
2022-07-24 23:41:47
221
转载 AVX指令集加速矩阵乘法
SIMD(SingleInstructionMultipleData,单指令多数据流),是一种实现空间上的并行性的技术。这种技术使用一个控制器控制多个处理单元,同时对一组数据中的每一个数据执行相同的操作。在SIMD指令执行期间,任意时刻都只有一个进程在运行,即SIMD没有并发性,仅仅只是同时进行计算。在Intel的x86微架构处理器中,SIMD指令集有MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512。https。...
2022-07-22 20:04:35
5648
转载 如何加速矩阵乘法——优化GEMM (CPU单线程篇)
矩阵乘法GEMM(Generalmatrixmultiply)是一个被广泛使用的基础算法,各种领域都需要应用,例如神经网络的核心计算任务就是矩阵乘法,交易中的各种信号计算也可能用到矩阵乘法。因此矩阵乘法的效率是极其关键的。关于如何优化矩阵乘法,我准备写一个较短的系列博文,包括CPU单线程篇、CPU多线程篇、GPU篇。原本计划还有一个稀疏矩阵乘法篇,由于这学期毕业前也没有时间把GPU篇做到满意,因此,稀疏矩阵篇就没了,GPU篇也很不完整。如果日后有时间且有那冲动可能会补上(大概率没有)。...
2022-07-22 19:48:24
7913
转载 c++中的atoi()和stoi()函数的用法和区别
相同点:①都是C++的字符处理函数,把数字字符串转换成int输出②头文件都是#include不同点:①atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char*类型的,而stoi()的参数是const string*,不需要转化为 const char*;如图:②stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!如图: 而ato...
2022-07-13 10:17:05
2148
转载 C++ STL 教程
在前面的章节中,我们已经学习了 C++ 模板的概念。C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++ 标准模板库的核心包括以下三个组件:这三个组件都带有丰富的预定义函数,帮助我们通过简单的方式处理复杂的任务。下面的程序演示了向量容器(一个 C++ 标准的模板),它与数组十分相似,唯一不同的是,向量在需要扩展大小的时候,会自动处理它自己的存储需求: #include...
2022-07-13 09:49:27
237
转载 Rust 循环
Rust 除了灵活的条件语句以外,循环结构的设计也十分成熟。这一点作为身经百战的开发者应该能感觉出来。while 循环是最典型的条件语句循环:fn main() { let mut number =1; while number != 4 { println !(" {}", number); number +=1;}println!("EXIT");}运行结果:123EXITRust 语言到此教程编撰之日还没有 do-while 的用法,但是 do 被规定为保留字,也许以后的
2022-07-11 22:37:11
290
转载 Rust 函数
函数在 Rust 语言中是普遍存在的。通过之前的章节已经可以了解到 Rust 函数的基本形式:fn ()其中 Rust 函数名称的命名风格是小写字母以下划线分割:fn main(){ println!("Hello, World!");another_function();}fn another_function(){println!("Hello");}运行结果:Hello, world!Hello, runoob!注意,我们在源代码中的 main 函数之后定义了...
2022-07-11 22:29:26
161
转载 Rust 数据类型
Rust 语言中的基础数据类型有以下几种。整数型简称整型,按照比特位长度和有无符号分为一下种类:isize 和 usize 两种整数类型是用来衡量数据大小的,它们的位长度取决于所运行的目标平台,如果是 32 位架构的处理器将使用 32 位位长度整型。整数的表述方法有以下几种:很显然,有的整数中间存在一个下划线,这种设计可以让人们在输入一个很大的数字时更容易判断数字的值大概是多少。Rust 与其它语言一样支持 32 位浮点数(f32)和 64 位浮点数(f64)。默认情况下,64.0 将表示 64 位浮点数,
2022-07-11 22:20:05
167
转载 Rust 基础语法
变量,基本类型,函数,注释和控制流,这些几乎是每种编程语言都具有的编程概念。这些基础概念将存在于每个 Rust 程序中,及早学习它们将使你以最快的速度学习 Rust 的使用。首先必须说明,Rust 是强类型语言,但具有自动判断变量类型的能力。这很容易让人与弱类型语言产生混淆。如果要声明变量,需要使用 let 关键字。例如:let a = 123;只学习过 JavaScript 的开发者对这句话很敏感,只学习过 C 语言的开发者对这句话很不理解。在这句声明语句之后,以下三行代码都是被禁止的:a = &quo
2022-07-11 22:11:31
454
转载 Cargo 教程
Cargo 是 Rust 的构建系统和包管理器。Rust 开发者常用 Cargo 来管理 Rust 工程和获取工程所依赖的库。在上个教程中我们曾使用 cargo new greeting 命令创建了一个名为 greeting 的工程,Cargo 新建了一个名为 greeting 的文件夹并在里面部署了一个 Rust 工程最典型的文件结构。这个 greeting 文件夹就是工程本身。Cargo 除了创建工程以外还具备构建(build)工程、运行(run)工程等一系列功能,构建和运行分别对应以下命令:cargo
2022-07-11 21:58:45
1733
转载 Rust 教程
Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。Rust 语言由 Mozilla 开发,最早发布于 2014 年 9 月。Rust 的编译器是在 MIT License 和 Apache License 2.0 双重协议声明下的免费开源软件。截至目前( 2020 年 1 月)最新的编译器版本是 1.41.0。Rust 官方在线工具: Rust Playground。Rust 系列文章内容由 Sobin 收集整理。高性
2022-07-11 21:55:03
302
转载 C 函数C 函数
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。函数还有很多叫法,比如
2022-07-11 00:28:56
92
转载 C 循环C 循环
C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了更为复杂执行路径的多种控制结构。 C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。C 提供了下列的循环控制语句。点击链接查看每个语句的细节。如果条件永远不为假,则循环将变成无限循环。for 循环在传统意义上可用于实现无限循环。由于构成
2022-07-11 00:23:36
103
转载 C 判断C 判断
判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。下面是大多数编程语言中典型的判断结构的一般形式: C 语言提供了以下类型的判断语句。点击链接查看每个语句的细节。我们已经在前面的章节中讲解了 条件运算符 ? :,可以用来替代 if...else 语句。它的一般形式如下:EXp1 ? Exp2: Exp3;其中,Exp1、Exp2 和 Exp3 是表达式
2022-07-11 00:20:49
139
转载 C 运算符 C 运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符:本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:请看下面的实例,了解 C 语言中所有可用的算术运算符: #include int main() { int a = 21; int b = 10; int c ; c = a + b; printf("...
2022-07-11 00:15:24
167
转载 C 存储类C 存储类
存储类定义 C 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C 程序中可用的存储类:autoregisterstaticexternauto 存储类是所有局部变量默认的存储类{ int mount; auto int month;}上面的实例定义了两个带有相同存储类的变量,auto 只能在函数内,即auto只能修饰局部变量。register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个字)
2022-07-10 23:56:26
82
转载 C 常量C 常量
常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L
2022-07-10 23:45:53
273
转载 C 变量 C 变量
变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。变量的名称可以由字母、数字和单精度浮点值。单精度是这样的格式,1位符号,8位指数,23位小数。双精度浮点值。双精度是1位符号,11位指数,52位小数。 C 语言也允许定义各种其他类型的变量,比如枚举、指针、数组、结构、共用体等等,这将会在后续的章节中进行讲解,本章节我们先讲解基本变量类型。变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存
2022-07-10 23:32:50
167
转载 C 数据类型
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。C 中的类型可分为以下几种:数组类型和结构类型统称为聚合类型。函数的类型指的是函数返回值的类型。在本章节接下来的部分我们将介绍基本类型,其他几种类型会在后边几个章节中进行讲解。 下表列出了关于标准整数类型的存储大小和值范围的细节: 注意,各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。以下列出了32位系统与64位系统的存储大小的差别(windows 相同
2022-07-10 23:16:02
94
转载 C 基本语法
我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句包括五个令牌:printf("Hello, World! \n");这五个令牌分别是:printf("Hello,World! \n")在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。例如,下面是两个不同的语句:printf("Hello, World! \n");return
2022-07-10 23:06:35
67
转载 C 程序结构
在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考。C 程序主要包括以下部分:让我们看一段简单的代码,可以输出单词 "Hello World":#include int main(){ /* 我的第一个c程序 */printf("Hello, World! \n");return 0;}接下来我们讲解一下上面这段程序:接下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。下面是简单的步骤:Linux 上编译C语言...
2022-07-10 22:58:15
70
转载 C 环境设置
如果您想要设置 C 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C 编译器。这将用于输入您的程序。文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。文本编辑器的名称和版本在不同的操作系统上可能会有所不同。例如,Notepad 通常用于 Windows 操作系统上,vim/vi 可用于 Linux/UNIX 操作系统上。通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。C 程序的源文件通常使用扩展
2022-07-10 22:53:46
579
转载 Linux误删python导致yum不可用,删除重装方法。
Linux 系统为 CentOS Linux release 7.4.1708手贱、手贱、手贱 删了python 导致yum不可用。百度一大圈,重装yum和python后,老是报各种各样的错。历经磨难,终于自己总结了一套,亲测可用,分享一下。首先卸载现有pythonrpm -qa|grep python|xargs rpm -ev --allmatches --nodeps #卸载pythonwhereis python |xargs rm -frv ##删除所有残余文件whereis python ##验
2022-07-07 21:15:52
1054
1
转载 顶会论文看图对比学习(GNN+CL)研究趋势
随着对比学习(Contrastive Learning)在 CV、NLP 等领域大放异彩,其研究热度近年来也逐步走高。在图学习领域,由于图(Graph)数据也存在缺少标签或难以标注的问题,自 2020 年来,研究者们也着力于将对比学习技术应用于图表示学习任务上,取得了十分不错的效果,这一系列算法研究称为 图对比学习(Graph Contrastive Learning)。由于图是一种离散的数据结构,且一些常见的图学习任务中,数据之间往往存在紧密的关联(如链接预测)。如何针对这些特性设计图对比学习算法、对比学
2022-07-03 10:20:47
781
转载 【阅读笔记】图对比学习 GNN+CL
🎯来源: https://mp.weixin.qq.com/s/X7gxlcY-PaQ97MiEJmKfbg对给定的大量无标注图数据,图对比学习算法旨在训练出一个图编码器,目前一般指图神经网络(Graph Neural Network, GNN)。由这个 GNN 编码得到的图表示向量,可以很好地保留图数据的特性。 Graph Contrastive Learning with Augmentations. NeurIPS 2020.算法步骤:1. 随机采样一批(batch)图2. 对每一个图进行两次随机.
2022-07-03 10:15:38
291
转载 一文详解图对比学习(GNN+CL)的一般流程和最新研究趋势
随着对比学习(Contrastive Learning)在 CV、NLP 等领域大放异彩,其研究热度近年来也逐步走高。在图学习领域,由于图(Graph)数据也存在缺少标签或难以标注的问题,自 2020 年来,研究者们也着力于将对比学习技术应用于图表示学习任务上,取得了十分不错的效果,这一系列算法研究称为图对比学习(Graph Contrastive Learning)。由于图是一种离散的数据结构,且一些常见的图学习任务中,数据之间往往存在紧密的关联(如链接预测)。如何针对这些特性设计图对比学习算法、对比学习
2022-07-03 10:14:36
4125
SOSP 2019.zip
2020-08-10
CES2019官方回馈:价值2000美元报告 _ 资讯 _ 数据观 _ 中国大数据产业观察_大数据门户_files.zip
2020-03-19
Guicherd-Callin_T_Distributed_Data_Integrity_Assurance_and_Repair.pdf
2020-11-25
Dexter_Michael_Combating_Evolving_Ransomware_at_the_Block_Level.pdf
2020-11-25
Yoshida_Hiroshi_Experiments_in_Storing_Data__Cold_Storage_Services.pdf
2020-11-25
Yang_L_Zhu_D_Achieving_10-Million_IOPS_from_a_single_VM_on_Windows_Hyper-V.pdf
2020-11-25
Sengupta_D_Kumar_U_Using_CDMI_to_Create_Replicate_Storage_Objects_and_Data.pdf
2020-11-25
算法导论(第三版).pdf
2020-11-18
a simple, Unix-like teaching operating system-rev8.pdf
2020-11-08
math-deep.pdf
2020-06-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人