自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HPC&Geophysics攻城狮

研究HPC和Geophysics的一只攻城狮

原创 C语言获取当前的日期及时间

我们在写C语言程序的时候,有的时候会用到读取本机的时间和日期,怎么做呢?其实很简单的,下面简单说一下: C语言中读取系统时间的函数为time(),其函数原型为: #include <time.h> time_t time( time_t * ) ; time_t就是long,函...

2018-03-18 10:36:06 55934 13

原创 数组在内存中存储方式

SU(Seismic Unix)中多维(≥2)数组的存储是列优先(columnmajor)的 CUDA中多维数组(≥2)数组的 存储是行优先(row major)的 用SU开的数组,将数据传给CUDA后还是列优先的。

2020-05-23 16:13:47 84 0

原创 地震勘探英文专业文章中的经典句子(1)

1,中文:震源波场随之时间的推移正传,采集记录的波场沿着时间反传。 English:The source wavefield expands as time increases and the recorded receiver wavefield is computed backward...

2020-05-23 09:05:46 45 0

原创 消逝波(表面波)Evanescent Wave

消逝波,英文为Evanescent Wave,又称表面波, 具体含义:一般来讲, 当地震波从低速介质入射到高速介质时,如果入射角大于临界角会产生全反射现象。 此时有地震波虽不能穿过两种介质的临界面, 但沿着临界面平行的方向会产生地震波,其波场的复振幅随着远离临界面的距离的增大而呈现指数级的减小趋...

2020-05-23 08:56:37 101 0

原创 地震勘探专业词汇(1)

Reflection:反射波 Refraction:折射波 Diffraction:绕射波 Multiple Wave:多次波 Evanescent Wave:消失波

2020-05-23 08:49:03 75 0

原创 cuSPARSE库:(十七)cusparseStatus_t 返回信息

(1)cusparseStatus_t 结构体的形式 typedef enum{ CUSPARSE_STATUS_SUCCESS=0, CUSPARSE_STATUS_NOT_INITIALIZED=1, CUSPARSE_STATUS_ALLOC_FAILED=2, CUSP...

2020-05-22 15:54:34 64 0

原创 cuSPARSE库:(十六)求解大型稀疏矩阵线性方程组

cuSPARSE利用LU分解及追赶法求解大型稀疏矩阵线性方程组 基本步骤: (1)LU分解:A=LU (2)求解:Lz = x (3)求解:U*y = z 主要代码: // Suppose that A is m x m sparse matrix represented by CSR forma...

2020-05-20 17:56:17 504 0

原创 cuSPARSE库:(十五)已经弃用的函数(1)

NV官方在DU-06709-001_v10.2 | November 2019发布的cuSPARSE API说明文档中,讲明了一些已经启动的函数,并且用已有的函数来代替。此处,整理几个函数,主要是针对非线性方程组求解的。 拟弃用的函数 替代函数 功能说明 cusparse<...

2020-05-20 12:16:37 68 0

原创 cuSPARSE库:(十四)求解稀疏三角形线性系统(solution of sparse triangular linear systems)

在cuSPARSE中,求解稀疏三角形线性系统(solution of sparse triangular linear systems)分两步实现: (1)分析阶段:调用函数csrsv_analysis()分析稀疏三角形矩阵,确定矩阵中各元素的依赖关系。该分析针对给定矩阵的稀疏格式和所选的cus...

2020-05-20 11:35:12 79 0

原创 cuSPARSE库:(十三)cusparseDestroySolveAnalysisInfo()

函数原型:cusparseStatus_t cusparseDestroySolveAnalysisInfo(cusparseSolveAnalysisInfo_t info) 函数功能:销毁和释放结构体所需的任何内存。 变量说明:info 为求解和分析结构体 注意:该函数将在接下来的更新版...

2020-05-20 11:03:16 23 0

原创 cuSPARSE库:(十二)cusparseDestroyMatDescr()

函数原型:cusparseStatus_t cusparseDestroyMatDescr(cusparseMatDescr_t descrA) 函数功能:释放为矩阵描述符分配的内存。 参数说明:descrA 为矩阵描述符

2020-05-20 10:58:47 28 0

原创 cuSPARSE库:(十一)cusparseCreateSolveAnalysisInfo()

函数原型:cusparseStatus_t cusparseCreateSolveAnalysisInfo(cusparseSolveAnalysisInfo_t *info) 函数功能:创建并初始化求解和分析的结构体,赋默认值; 变量解释:info,指向求解和分析的结构体的指针

2020-05-20 10:46:23 38 0

原创 cuSPARSE库:(十)cusparseCreateMatDescr()

函数原型:cusparseStatus_t cusparseCreateMatDescr(cusparseMatDescr_t *descrA) 函数功能:初始化矩阵描述符(descriptor),设定矩阵类型和索引基分别为默认的CUSPARSE_MATRIX_TYPE_GENERAL和CUSP...

2020-05-20 10:23:27 30 0

原创 cuSPARSE库:(九)cusparseSetStream()

函数原型:cusparseStatus_t cusparseSetStream(cusparseHandle_t handle, cudaStream_t streamId) 函数功能:设定被cuSPARSE 库调用的流,用于执行所有的调用的函数。 变量解释:handle为输入变量,用于控制c...

2020-05-20 09:59:40 35 0

原创 cuSPARSE库:(八)cusparseGetStream()

函数原型:cusparseStatus_t cusparseGetStream(cusparseHandle_t handle, cudaStream_t *streamId) 函数功能:该函数用于获取cuSPARSE库的流,用于执行所有的cuSPARSE库函数的调用。如果cuSPARSE库流没...

2020-05-20 09:51:41 43 0

原创 cuSPARSE库:(七)cusparseCreate()的功能与作用

函数原型:cusparseStatus_t cusparseCreate(cusparseHandle_t *handle) 函数功能:初始化cuSPARSE 库,并且创建一个句柄控制cuSPARSE的上下文 调用位置:该函数必须在其他任何 cuSPARSE API 之前被调用,用于分配访问G...

2020-05-20 08:22:05 31 0

原创 cuSPARSE库:(六)cusparseMatrixType_t的说明

cusparseMatrixType_t: 此类型指示存储在稀疏存储中的矩阵的类型。注意,对于对称矩阵、厄米矩阵和三角矩阵,假设只存储它们的上下部分。 矩阵类型(MatrixType)和填充模式的基本思想是保持对称/厄米矩阵的最小存储量,并利用SpMV(Sparse Matrix Vector...

2020-05-18 12:40:25 60 0

原创 cuSPAESE库:(五)零基索引和一基索引

cuSPAESE库支持基于零和一的索引。 零基索引:行标和列标的索引值均从0开始,类似于C语言中的数组索引方式 一基所以:行标和列标的索引值均从1开始,类似于MATLAB中的数组索引方式 索引基是通过cusparseIndexBase_t类型选择的,它作为独立参数或作为矩阵描述符cuspar...

2020-05-18 11:18:56 30 0

原创 cuSPARSE库:(四)不同矩阵格式在内存中的存储方式

(1)Dense Format,以列优先格式(column-major format)存储在内存中, (2)Coordinate Format (COO),以行优先格式(row-major format)存储在内存中 (3)Compressed Sparse Row Format (CSR),...

2020-05-18 11:06:53 100 0

原创 CUDA编程之:Stream(流)

CUDA Stream(流):指在设备上按主机代码发出的顺序执行的一系列异步CUDA操作。

2020-05-14 16:58:54 63 0

原创 cuSPARSE库:(三)Thread Safety(线程安全)

cuSPARSE库是线程安全的,其函数可以从多个主机线程调用。 但是,同时读/写相同对象(或同一句柄)是不安全的。因此,每个线程的句柄必须是私有的,即每个线程只有一个句柄是安全的。 这在写MPI+CUDA程序的时候一定要注意。 ...

2020-05-13 20:59:14 35 0

原创 API(应用程序接口)是什么

API是编程中常见的一个术语,那么何为API呢,简单解释一下: API的全写为Application Programming Interface,意为应用程序接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。 API的作用是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能...

2020-05-13 18:45:28 138 0

原创 cuSPARSE库:(二)静态库的支持

从6.5版本开始,cuSPARSE库也发布了Linux和Mac上的静态库libcusparse_static.a,cuSPARSE的静态库和其他所有的静态数学函数库依赖于一个公共的线程抽象层库libculibos.a(Linux系统中)或者culibos.lib(Win系统中)。 编译示例: ...

2020-05-13 18:36:36 53 0

原创 CUDA编程之:cudaMemcpy()函数

cudaMemcpy用于在主机(Host)和设备(Device)之间往返的传递数据,用法如下: 主机到设备:cudaMemcpy(d_A,h_A,nBytes,cudaMemcpyHostToDevice) 设备到主机:cudaMemcpy(h_A,d_A,nBytes,cudaMemcpyD...

2020-05-13 18:05:09 294 0

原创 cuSPARSE库:(一)函数的异步执行

cuSPARSE库函数相对于主机(Host)是异步执行的,在获取最后结果之前会将进程的控制权返回到主机(Host)的应用程序。我们需要使用cudaDeviceSynchronize()函数来确保特定cuSPARSE库函数的执行能正常完成。 ...

2020-05-13 17:40:40 47 0

原创 潜波(Diving Wave)

潜波(Diving Wave):又称透过波或者传输波。是指地震波在传播过程中遇到波阻抗界面时,透过界面传播到界面以下的那一部分地震波。 潜波的产生机理:地震波在传播中遇到弹性不同的地质体分界面时,有一部分能量透过界面继续向前传播,其方向遵循透射定律,即透射线和入射线与入射点处界面的垂线(法线)在...

2020-05-04 22:09:21 77 0

原创 Ubuntu16.04 配置VNC

我们在使用服务器时,经常远程登录。常用的远程登录命令SSH,只能在Terminal下面操作,不能实现桌面级的操作。另外用SSH登录服务器发作业时, ...

2020-05-04 12:03:44 81 0

原创 常用函数的连续傅里叶变换对

本文整理了一些常用函数的傅里叶变换,方便自己以后查找,也希望对大家有用 1、连续函数傅里叶正反变换公式: 2、脉冲函数的正反傅里叶变换公式: 3、单位阶跃函数的正反傅里叶变换公式: 4、指数函数(单边)的正反傅里叶变换公式: 先整理这几个,后续会不断更新…… ...

2019-11-22 17:13:11 708 0

原创 Ubuntu16.04下禁用scp、sftp和winscp

在上一篇博文《Ubuntu16.04 搭建FTP服务器,设置用户权限为只许上传、禁止下载和删除》中,我讲述了Ubuntu16.04下配置FTP,并且设定用户权限为只能上传数据,禁止下载和删除数据。这算在FTP层面封堵了服务器数据泄露的途径。 但是,Ubuntu系统的scp和sftp还是起作用的,...

2019-11-21 19:24:55 287 0

原创 Ubuntu16.04 搭建FTP服务器,设置用户权限为只许上传、禁止下载和删除

最近导师给了一项任务:在组内某台服务器上创建一个子用户,可以用在windows端用ssh连接到该用户做运算,也允许windows端的用户上传数据,但是禁止向win端下载数据,也禁止删除文件。 开始以为很简单,在Ubuntu系统上分设一个子用户,然后设定该用户的特定文件夹读写权限即可。但是,操作起...

2019-11-21 15:29:22 497 0

原创 Redhat或者Centos手动安装Vim,

vim是一款代码编辑神器,程序猿的最爱,也是最能装X的一款代码编辑器。在线安装vim很简单,直接yum即可。我们的服务器在机房中,不能连接外网,所以只能手动安装配置了。其实也很简单,步骤如下: 1、下载wim,网址:https://linux.softpedia.com/get/Text-Edi...

2019-11-12 11:18:23 167 0

原创 Redhat或者Centos 手动安装sublime text 3

Sublime Text是一款十分出色的代码编辑器,友好的界面、炫酷的主题配色以及自动索引函数等功能让每一个程序员爱不释手。Linux下在线安装sublime很简单,本文不再赘述。我们的服务器放在机房中,不能联网,所以要手动安装。其实也很简单,步骤如下: 1、下载sublime安装包,网址:ht...

2019-11-12 10:53:21 151 0

原创 Redhat或者Centos 手动安装htop

htop 是Linux系统中的一个交互式的CPU资源监控器, 与传统的top相比,htop更加人性化,所以很多人现在倾向于用htop来监控CPU资源、内存资源和进程控制。我们的机器放在机房中,机房不能连接外网,用不了yum命令,只能手动安装。其实也很简单,基本步骤如下: 1、手动下载htop,网...

2019-11-11 22:45:05 194 0

原创 MPI进程饿死问题

在编写并行计算的程序时,一定要注意“进程饿死”的问题,刚接触MPI并行计算的同学可能不太注意这个问题,也很容易写出这样的程序。那么何为饿死呢,简单讲述一下: 并行计算大佬刘文志“风辰”在《并行算法设计与性能优化》一书中给出了“饿死”几个定义(书的P140处): 所谓“饿死”是指某个控制流一直得...

2019-11-03 10:42:29 158 0

原创 CUDA的Global memory和Shared memory的区别

Global memory: large, on-board memory and characterized by relatively high latencies. Shared memory;smaller, low-latency on-chip memory that offers ...

2019-10-30 21:32:38 356 0

原创 Ubuntu下convert命令将eps转pdf或者tif时出错的问题解决办法

Ubuntu系统一般自带ImageMagick,我们使用其中的convert做图片的格式转换,但是新安装的Ubuntu系统一般会将convert命令的权限默认设置成“none”,具体信息在/etc/ImageMagick-6/policy.xml 中 初始状态的权限如下: <!--...

2019-10-27 16:28:50 200 0

原创 Ubuntu16.04 下convert 命令 将eps转tif,jpg,png,pdf格式

在Ubuntu16.04 中用SU生成的图件一般是eps格式的,我们需要将其转换为tif,jpg,png or pdf等格式。用ImageMagick的convert命令可以实现这些格式转换操作: 1、eps转tif convert -density 600 hs_shot.eps -res...

2019-10-27 16:14:24 871 0

原创 Ubuntu16.04 下SU画图,批量和单个

SU画EPS图很方便,也很简单,当单个画图时用下面的命令: supsimage < shot_new/hs_shot$i.su \ d1num=0.5 d2num=100 \ wbox=30 hbox=6 \ threecolor...

2019-10-27 16:00:08 139 0

原创 Linux 下Shell脚本中的加减乘除运算

在用shell脚本语言编程的时候,我们经常用到加减乘除等基本的数学运算操作,现在整理一下,放在这里,以备后用。 Shell中常用的数学运算符有一下几个: +:对两个变量做加法。 -:对两个变量做减法。 *:对两个变量做乘法。 /:对两个变量做除法。 **:对两个变量做幂运算。 %:...

2019-10-27 15:39:45 2740 0

原创 Ubuntu16.04下 shell脚本中C语言形式的for循环用法

Ubuntu16.04的Shell支持C语言形式的for循环,具体写法如下: #!/bin/bash for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); done for((i=1;i<=100;i+=10)); do e...

2019-10-27 15:15:51 577 0

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