HPC&Geophysics攻城狮

研究HPC和Geophysics的一只攻城狮

基于Madagascar的二维地震声波波动方程正演模拟

最近在将SU写的地震勘探的程序迁移到Madagascar上,初步尝试,写了一个二维声波方程正演程序,很简单,也很基本,只能说出波场快照,没有吸收边界条件,贴出来,供大家参考。代码和脚本如下: #include <time.h> #in...

2018-12-24 15:03:49

阅读数 72

评论数 0

Madagascar的自定义浮点型函数--三角函数和反三角函数

在Madagascar中,有自定义的浮点型的三角函数和反三角函数,它们都在头文件rfs.h中,形式如下: float cosf(float x); /*< float cos >*/ float sinf(float x); ...

2018-12-24 10:08:53

阅读数 37

评论数 0

Madagascar的自定义浮点型函数--绝对值函数和最值函数

Madagascar中,有自定义的浮点型取绝对值和最值得函数,它们都在头文件rsf.h中,形式如下: float fabsf(float x); /*< float fabs >*/ float fmaxf(float x, f...

2018-12-24 10:05:40

阅读数 29

评论数 0

Madagascar的自定义浮点型函数--指数函数和幂函数

在Madagascar中,有自己定义的幂指函数,它们都在头文件rsf.h中,形式如下: float expf(float x); /*< float exp >*/ float powf(floa...

2018-12-24 09:57:37

阅读数 90

评论数 0

Madagascar的自定义浮点型函数--对数函数

在Madagascar中,有自己定义的幂指函数,都在头文件rsf.h中,它们的形式如下: float logf(float x); /*< float log >*/ float log2f(float x); /*< float...

2018-12-24 09:33:11

阅读数 33

评论数 0

Madagascar的自定义浮点型函数--取整函数

Madagascar有自定义的取整函数,都在头文件rsf.h中,形式如下: float fabsf(float x); /*< float fabs >*/ float fmaxf(float x, float ...

2018-12-23 22:59:44

阅读数 23

评论数 0

Madagascar的宏定义函数--判断整数的奇偶性函数

Madagascar中自己的宏定义函数判断某个整数的奇偶性,它们都在头文件rsf.h,形式如下: #define SF_ODD(n) ((n) & 1) #define SF_EVEN(n) (!(SF_ODD(n))) 在程序中,我们可以直接用这两个函数, 判断奇数:...

2018-12-23 22:51:42

阅读数 27

评论数 0

Madagascar中的宏定义函数--绝对值函数和符号函数

和SU类似,Madagascar中也有自己的绝对值函数和符号函数,它们都在头文件rsf.h中,形式如下: #define SF_ABS(a) ((a) >= 0 ? (a) : (-(a))) #define SF_SIG(a) ((a) >=...

2018-12-23 22:45:25

阅读数 16

评论数 0

Madagascar中的宏定义--圆周率PI

和SU类似,Madagascar也有自己的宏定义圆周率π,在头文件rsf,h中,形式如下: #define SF_PI (3.14159265358979323846264338328) 在程序中我们可以直接用SF_PI表示圆周率。 ...

2018-12-23 22:40:15

阅读数 33

评论数 0

Madagascar的宏定义函数--取最值、取整

和SU类似,Madagascar也有自己的宏定义最值和取整函数,如下: #define SF_MAX(a,b) ((a) < (b) ? (b) : (a)) #define SF_MIN(a,b) ((a) < (b) ? (a...

2018-12-23 22:33:17

阅读数 25

评论数 0

SU编程和Madagascar编程中的函数对比和区别--终端提示函数

之前一直用SU开发地震勘探的程序,在老板的要求下逐步转向Madagascar编程,做程序的迁移。在语言转换过程中,受限于SU的编程习惯,始终想用SU中的一下函数,但是在编译时会会有“warning”提示。所以我将SU和Madagascar中功能相同的函数进行对比分析,以备常用。 1、终端信息提示...

2018-12-23 15:37:34

阅读数 26

评论数 0

Madagascar编程的Makefile文件配置

本人从事Geophysics的研究,最近在尝试用Madagascar合编程,小有收获,现在贴出Makefile文件的配置,供大家参考。 # Makefile for CPU program based on Madagascar # Home path MADA_HOME = /home/xx/...

2018-12-23 14:05:47

阅读数 21

评论数 0

Madagascar和MPI混合编程的Makefile文件配置

本人从事Geophysics的研究,最近在尝试用Madagascar和MPI混合编程,小有收获,现在贴出Makefile文件的配置,供大家参考。 # Makefile for GPU program based on Madagascar,MPI # Home path MPI_HOME...

2018-12-23 13:51:53

阅读数 28

评论数 0

一个简单的MPI+C语言编程实例

本在做地震勘探数值模拟,由于大计算量的问题,试着探索MPI并行计算。小有收获,在此给出一个简单的例子,希望对大家有益处。 #include <stdio.h> #include "time.h" #include ...

2018-11-17 19:13:05

阅读数 81

评论数 0

CUDA、SU、MPI和Madagascar混合编程的Makefile文件配置

本人从事地震勘探的科研工作,在Ubuntu系统中用CUDA、SU、MPI和Madagascar做C语言的混合编程。多语言混合编程,关键之处在于Makefile文件的配置Makefile文件的配置。在此给出一个简单的示例,供大家参考。 Makefile文件: # # Makefile for G...

2018-11-17 18:49:36

阅读数 53

评论数 0

基于CUDA的离散傅里叶变换(Discrete Fourier Transform,DFT)

最近在做地震勘探的全波形反演,用分频反演的方法,需要对地震波场按照特定的频段进行傅里叶变换,这要用到DFT。在CPU上,DFT的计算非常耗时,当处理三维数据时耗时更加严重,所以,本人用CUDA+SU(seismic Unix),在GPU上来做DFT。话不多说,直接上代码: #include...

2018-09-08 09:39:20

阅读数 206

评论数 0

C语言为四维数组申请动态内存空间的方法(二)

尝试了用堆栈的方式为四维数组申请动态内存空间,并将申请内存的操作封装成了子函数,方便在主程序中使用。希望对大家有用。代码如下: #include <stdio.h> #include <stdlib.h>...

2018-08-19 10:20:54

阅读数 250

评论数 0

C语言为四维数组申请动态内存空间的方法(一)

尝试了用结构体为四维数组申请动态内存空间,希望对大家有用。代码如下: #include <stdio.h> #include <stdlib.h> typedef struct _a{ flo...

2018-08-19 10:16:22

阅读数 270

评论数 0

CUDA和LAPACK混编的MakeFile文件

最近在写CUDA和LAPACK混编的程序,贴出Makefile文件和源程序文件,供大家参考。 Makefile文件 # Makefile for GPU program based on SU # Home path SU_HOME = /home/ry/su SU_HOME1 = /hom...

2018-08-17 20:25:40

阅读数 65

评论数 0

CUDA、MPI和SU混编,MakeFile文件的编写

本人研究地震勘探的全波形反演,最近在用CUDA+MPI加速反演过程。 写代码过程中最关键的是Makefile文件的编写,也是最难的。下面给出基于SU(Seismic Unix)的CUDA+MPI开发过程的Makefile文件: # Makefile for GPU program base...

2018-07-13 09:58:59

阅读数 114

评论数 0

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