自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 回调函数理解

1. 什么是回调函数?回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义。我在百度上搜了一下,发现众说纷纭,有很大一部分都是使用类似这么一个场景来说明:A君去B君店里买东西,恰好缺货,A君留下号码给B君,有货时通知A君。感觉这个让人更容易想到的是异步操作,而不是回调。另外还有两句英文让我印象深刻:1) If you call me, I will call you back; 2) Don't call me, I will call

2022-03-24 11:06:14 310

原创 C与fortran动态库导出与调用相关

Example:.f导出DLL 与lib(导入库) subroutine FORTRANADD(a,b,c)c Expose subroutine fortranDll to users of this DLL !DEC$ ATTRIBUTES DLLEXPORT::FORTRANADD implicit none double precision a,b,c c Variables c Body of fortranDll c=a+b return end s

2021-08-13 11:28:16 403

转载 __declspec(dllexport)相关

__declspec(dllexport):导出符号,也就是定义需要导出函数的dll中给导出函数的函数声明前面加上导出符号,表示该方法可以导出给其他DLL或者exe使用;__declspec(dllimport)导入符号,也就是在使用该函数的DLL或者exe中需要在该函数的函数声明前面加上该符号,表示该函数方法是从其他库导入的。我们编写一个DLL库一般都是用来给其他DLL或者exe程序调用的。当我们编写DLL库时,要想把该库中的函数导出来给其他DLL或者exe使用,一般有两种方式:一是在声明该函数的声

2021-08-13 11:16:08 375

转载 C/C++调用前缀

今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter);不解为什么要用WINAPI宏定义,查了后发现下面的定义。于是乎需要区别__stdcall和__cdecl两者的区别; #define CALLBACK __stdcall#define WINAPI __stdcall#define WINAPIV __cdecl#define APIENTRY WINAPI#define APIPRIVATE

2021-08-13 11:08:05 844

原创 vs 中 intel compiler2021开启全局优化后出错

找到项目 .vcxproj文件 <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>false</WholeProgramOptimization> <CharacterSet>MultiByte</CharacterSet> XXXXX XXXXX </PropertyGroup>在记事本

2021-08-10 20:09:43 144

原创 windows vs使用ssize_t

#if defined(_MSC_VER)#include <BaseTsd.h>typedef SSIZE_T ssize_t;#endif

2021-07-26 15:51:05 1848 1

原创 C++ use Intel fortran lib error

C/C++ 在VS中使用Intel fortran 编译的静态库时出现错误LNK1104 cannot open file ‘ifmodintr.lib’.目前解决方案:在C项目中添加fortran compiler的include与lib路径其他解决方案:相关地址:https://community.intel.com/t5/Intel-Fortran-Compiler/LNK1104-cannot-open-file-ifmodintr-lib/m-p/1167879#M144997ht

2021-07-21 17:44:50 288

转载 动态分配结构体数组

在实际的编程中,数据的储存是常常遇到的,数组作为最简单实用的数据结构,常常被使用,而在c语言中数组是静态的,不允许静态的建立数组,而在实际应用中,如果固定数组的大小,在不知道输入数据的数量时,往往会造成数组定义过大,产生浪费;或是数组定义过小,不足够储存数据的问题。除此之外,结构体能储存大量的信息且方便使用,那么可以将二者结合起来,通过动态的为结构体分配内存,来达到一个不限定大小的结构体数组用于存放数据。实现方法如下:#include <stdio.h>#include <mall

2021-07-14 10:17:37 3130

转载 openblas编译自定义变量

OpenBLAS是高性能多核BLAS库,是GotoBLAS2 1.13 BSD版本的衍生版。项目主页是 https://github.com/xianyi/OpenBLAS 。通常的编译安装流程如下:make CC=gcc-4.7 FC=gfortran (通常情况下,make会进行自动探测,够用了)make PREFIX=/your/path install (可选)12其中,make过程会自动的探测当前机器和编译环境,设置合适的选项。需注意的是,OpenBLAS会下载netlib上的LAP

2021-07-12 20:05:33 349

原创 win10+MS-MPI+局域网+多主机 组建集群计算

step1:下载安装 MS-mpi与MS-sdk 最好安装目录相同step2:在参与计算的主机上添加新的用户,使用相同的用户名和密码,计算时使用该账户登录step3:在slaves上关闭防火墙,(亲测 master上未关闭可以正常运行)step4:在参与计算的主机上运行 smpd -dstep5:获取局域网下所有参与计算主机的ip地址step6:所有主机将相同的执行文件放置在同一目录下 例如 predir\test.exestep7:在master端 执行mpiexec -hosts N

2021-07-11 17:27:43 2183 4

转载 cuda stream 分析

Stream一般来说,cuda c并行性表现在下面两个层面上:· Kernel level· Grid levelStream和event简介Cuda stream是指一堆异步的cuda操作,他们按照host代码调用的顺序执行在device上。典型的cuda编程模式我们已经熟知了:· 将输入数据从host转移到device· 在device上执行kernel· 将结果从device上转移回hostCuda Streams所有的cuda操作(包括kernel执行和数据传输)都显式或隐式的

2021-07-09 15:53:24 661

原创 t_chol_super_numeric:算法

对于已经计算出的L的数值稀疏结构,并且supernode也已经确定计算前next、Lpos数组未定义,head数组均为-1,三者均在分解计算中更新其中包含两层循环,外层为超节点遍历,内层为对该超节点有贡献的所有descendant的遍历for s=0:nsuper-1 使用left-looking依次更新supernode k dnext=head[s] if dnext不为-1(即存在有贡献子孙) d=dnext 使用Lpos定位子孙 d 相应Ls与Lx的offset

2021-07-03 14:20:45 120

原创 sparse LU分解中的numeric pivot细节

在进行稀疏LU分解时,存在分解过程中选取新的数值主元(numeric pivot)情况当分解到第K步时, 对于用第j行的交换第i行来得到新的有效主元那么之前第1~k-1步分解得到的L矩阵中相应的第i行与第j行也需要替换,然后forward solver的时候对于Ly=B’,其中B’是B进行相应的行交换得到的最后对于backward solve Ux=y的时候不需要进行变换...

2021-06-29 21:09:05 341

原创 fortran 格式化输出

格式化输出的控制字符非常的丰富,但常用的并不多,一般说来:" I 、F、E、A、X "是最常使用的几个格式Iw[.m] 以w个字符的宽度来输出整数,至少输出m个数字。如:write(*,"(I5)") 100 输出:_ _100 ; 前面两空格Fw.d 以w个字符文本框来输出浮点数,小数部分占d个字符宽,输出文本框的设置不中会出现*号。如:write(*,"(F9.3)") 123.45 输出:_ _123.450 ; 前面两空格,后补0Ew.d[Ee] 用科学计数法,以w个字符宽来输出浮点

2021-06-28 17:25:18 1545

原创 IVF环境下Fortran使用C++编译的静态库

1、VS中新建C++项目 编译得到相应lib文件extern "C" int CADD(int , int ,int );int CADD(int a, int b,int c){ return a+b+c;}2、在fortran项目中添加lib文件注意:如有多有lib用空格隔开(C++项目中用分号)3、使用LIB文件 program libtest implicit none interface integer

2021-06-07 19:46:54 739

空空如也

空空如也

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

TA关注的人

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