支持MPI的hdf5库的编译

发布时间:2017-02-23 MPI C/C++ HDF5

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

  因为最近要研究并行I/O,据说hdf5文件格式可以支持并行I/O,深度学习框架Caffe用的是hdf格式,所以决定把hdf5库的源码编译一下。

 

   首先得安装MPI的开发环境mpich2-1.2.1p1-win-ia32.msi(配套VS2008),然后到hdf5-1.10.0-patch1下载hdf5的最新源码,然后使用CMake生成VS工程文件,需要注意的是CMake设置的编译选项默认是不支持并行的,因此需要把HDF5_ENABLE_PARALLEL这个选项选上,同时HDF5_ENABLE_PARALLEL这个编译选项和HDF5_BUILD_CPP_LIB是互相冲突的,因此不能编译为C++库,只能编译为C库,也就是说hdf5的C++库不支持并行I/O,hdf5的C库才支持并行I/O,具体如下图:


       这样可以生成一个叫HDF5.sln的解决方案文件,里面的工程很多,一般只需要编译hdf5-shared和hdf5-static两个工程即可,具体如下图:


        编译好了hdf5库后,接下来测试使用只需要包含hdf5.h和链接对应的库文件件即可。需要注意的是使用hdf5的动态库需要增加一个预处理器:H5_BUILT_AS_DYNAMIC_LIB,在hdf5的官网上就有这样一句提示:

To use the shared libraries on Windows with Visual Studio you must specify the H5_BUILT_AS_DYNAMIC_LIB compile definition.

 

       hdf5-1.10.0-patch1的源码及对应的VS2008解决方案已上传至CSDN:支持MPI的hdf5最新源码工程。

更多相关推荐


muduo例子学习笔记1

发布时间:2014-02-14 C/C++ 网络
1.五个简单TCP协议1)discard--丢弃所有收到的数据#include"discard.h"#include<muduo/base/Logging.h>#include<muduo/net/EventLoop.h>usingnamespacemuduo;usingnamespacemuduo::net;intmain(){LOG_INFO<<"pid="...

csh

发布时间:2018-07-13 C/C++ SHELL 操作系统
在*unix系统中,常用的shell有sh,bash,csh/tcsh,ksh. sh来自于systemV的Unix,是传统的Unix的shell,直到现在很多的系统管理员仍然喜欢使用sh。bash来自于BSDUnix,语法非常类似于C语言,所以通常有C/C++编程背景的开发人员最喜欢使用。ksh是对sh的扩展,且吸收了csh的一些有用的功能,但是由于开始ksh的license是AT&T,...

zz:配置log4j

发布时间:2011-07-29 C/C++ JAVA 操作系统
转自http://www.blogjava.net/zJun/archive/2006/06/28/55511.html Log4J的配置文件(ConfigurationFile)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1.配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j...

配置Log4j

发布时间:2018-07-11 C/C++ JAVA 操作系统
Log4J的配置文件(ConfigurationFile)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1.配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName...

转: Xcode提示“expression is not assignable”

发布时间:2016-04-16 移动开发 C/C++ XCODE
2019独角兽企业重金招聘Python工程师标准>>>self.view.frame.size.height=100f;这样写没法通过编译,编译器会报错"expressionisnotassignable"原因是,这句话里面的几个点有两种不同的含义。self.view.frame是Objective-C语法,是读取view属性的frame属性,在Objective-C中使用点来访...

luogu2577 午餐

发布时间:2019-08-16 C/C++
题目题目描述上午的训练结束了,THUACM小组集体去吃午餐,他们一行N人来到了著名的十食堂。这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭。由于每个人的口味(以及胃口)不同,所以他们要吃的菜各有不同,打饭所要花费的时间是因人而异的。另外每个人吃饭的速度也不尽相同,所以吃饭花费的时间也是可能有所不同的。THUACM小组的吃饭计划是这样的:先把所有的人分成两队,并安排好每队中各人的排列顺序,然...

C++只允许实例化一次的类

发布时间:2017-12-10 C/C++ UI
1.意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。2.动机 对一些类来说,只有一个实例是很重要的。虽然系统中可以有许多打印机,但却只应该有一个打印假脱机(printerspooler),只应该有一个文件系统和一个窗口管理器。一个数字滤波器只能有一个A/D转换器。一个会计系统只能专用于一个公司。 我们怎么样才能保证一个类只有一个实例并且这个实例易于被访问呢?一个全局变量使得一个对象可以...

出现( linker command failed with exit code 1)错误总结(http://blog.csdn.net/hengshujiyi/article/details/211...

发布时间:2016-01-04 C/C++
这种问题,通常出现在添加第三方库文件或者多人开发时。这种问题一般是找不到文件而导致的链接错误。我们可以从如下几个方面着手排查。 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误。 [html] viewplaincopy Undefined symbols for architecture armv7:    "_OBJC_CLASS_$_MyPageLogViewControl...

游戏程序员养成计划

发布时间:2019-10-06 C/C++ C# 人工智能
与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手。下面总结了一些入门方法和比较容易入手的资料。         首先你要精通一门高级语言,比如C++或者C#,其次,要有良好的英文阅读能力。对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为你遇到的大部分资源都将是英文的,不要总等...

c++ double float 数值比较

发布时间:2014-10-30 C/C++
浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。    所以浮点数在运算过程中通常伴随着因为无法精确表示而进行的近似或舍入。但是这种设计的好处是可以在固定的长度上存储更大范围的数。1、将字符串转换为float、double过程...

学习杂记

发布时间:2016-07-08 C/C++ C# 操作系统
1.C#中调用C++函数的注意事项第一步:定义DLL[DllImport("JZTDevDll.dll",EntryPoint="FPITemplate")]publicstaticexternintFPITemplate(intnPort,refbyte_psMB,refintlpLength);第二步:调用byte[]_psMB=newbyte[513];int_lpLength=_psMB....

C++调用C#的dll

发布时间:2013-11-17 C/C++ C#
把C#编译成DLL或者Axtive控件,再由C调用 ! 比如使用C++调用C#的DLL  SwfDotNet是C#编写的,作者的C#水平,真是令我佩服。这是个特别好的读写Swf文件的库。但是,我要用在C++项目中,怎么让C++调用C#的DLL呢。今天一上午都在琢磨这个问题,耽误了很多时间,原因是编译是出现: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件...

webRTC peerconnection_client demo创建VS工程

发布时间:2017-11-13 C/C++ JSON
  编译了webRTC Windows源码之后,想使用编译出来的库写一个demo出来,但是又不知到怎么下手。就想通过源码中带的示例peerconnection_client和peerconnection_server来学webRTCpeerconnection API的使用方法。为了更方便的调试和了解webRTC库的使用,就萌生了把peerconnection_client和编译出来的webRTC...

[转]lua元表代码分析

发布时间:2017-04-25 C/C++ 运维 LUA
http://lin-style.iteye.com/blog/1012138 版本整理日期:2011/4/21 元表其实就是可以让你HOOK掉一些操作的一张表。表的定义在ltm.h/c的文件里。对元表的调用在lvm文件里。来看看是怎么hook的。首先定义了一堆的枚举 Cpp代码 typedef enum {    TM_INDEX,    TM_NEWINDEX,    TM_GC,    TM...

多线程技术 初步

发布时间:2016-03-15 移动开发 C/C++ UI
转载自:http://www.cofcool.net/development/2015/06/21/ios-study-note-ten-multithreading-1/进程:进程是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。线程:线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行。1个进程要想执行任务,必须得有线程(每1个...

libevent 一个time server

发布时间:2008-05-19 C/C++ SOCKET
#include<netinet/in.h>#include<sys/socket.h>#include<sys/types.h>#include<event.h>#include<stdio.h>#include<time.h>voidconnection_time(intfd,shortevent,structevent*...

一起学 Java(二)面向对象

发布时间:2016-12-30 C/C++ JAVA
一、方法函数函数也称为方法,就是定义在类中的具有特定功能的一段独立代码。用于定义功能,提高代码的复用性。函数的特点1>定义函数可以将功能代码进行封装,便于对该功能进行复用;2>函数只有被调用才会被执行;3>对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写,系统会帮你自动加上;4>函数中只能调用函数,不可以...

APMSERV一些常用的技巧

发布时间:2016-02-17 C/C++ PHP PYTHON
2019独角兽企业重金招聘Python工程师标准>>>1、APMServer的APPACHE的日志在Apache/logs里面2、可以在PHP.ini中看extension_dir="D:/APMServ5.2.6/PHP/ext",所有的扩展都保存在这个目录3、查看PHP的MSVC版本,通过phpinfo看得出ConfigureCommand看到VC98字样的是VC6,Comp...

近期一些事

发布时间:2019-10-08 C/C++ 数据结构与算法 PYTHON
Link:https://informationalmind.appspot.com/2012/07/10/AboutSomethingRecently.html好久没更新了,主要是因为最近做的事情比较杂,而且没有一个完成的,所以一直没有写。而且到现在为止,依然是各种未完成……最近都干啥了呢?应付各种考试,看书,读KlayGE的一部分代码,“调研”某些基于GPU的技术,参加了个某某企业举办的程序设...

数据库使用学习笔记

发布时间:2017-10-24 C/C++ 数据库
 建库图1-1        建库语句一般为(图1-1)所示,但需要注意的有2点:        1.需要现在指定盘里新建数据库文件EduBase2018。        2.因为数据库与VB、C语言不同,一旦执行,便将数据存在外存中,而非短暂保存,所以在下一次运行时,软件会提示“EduBase2018”已存在(如图1-2),所以这时可以使用IF语句,这样可以循环使用,不会出现错误(如图1-3)。...

python之总体理解

发布时间:2017-07-24 C/C++ JAVA PYTHON
作为脚本,python具备了弱类型语言的灵活性,便捷性。这在日常的开发使用中能够大幅度的减轻开发人员的编码负担,开发者也能够将精力集中在程序的逻辑管理和总体构架设计上。一般而言,随着经验的积累,开发人员都能使用python写出漂亮的代码,简洁而美观。python也是严谨的,从对各类预定义错误的设定我们就可以发现python具备着编译语言具备的严密的逻辑结构。可以这么讲,随着对python的深入理解...

[工具]推荐一款查看dll依赖工具

发布时间:2014-05-31 C/C++
引言很久没写一篇像样的博客了,最近一个月一直忙于项目,也没时间去总结了,回到家,也就是看看书,没怎么总结。不过还是挺兴奋的,每天过得还算充实。这里也算是对五月份的一个总结吧。为什么要查看dll因为项目是一个轮询签名系统,在调用c++动态链接库的时候,同事给提供了两个版本的dll,一个32位的,一个64位的,名字一样,引用错的话,就造成无法签名等原因,还得根据位数的不同,生成x86或者x64的项目。...

转贴 CxImage类库使用说明

发布时间:2011-06-09 C/C++ 人工智能
一。CxImage类库简介这只是翻译了CxImage开源项目主页上的部分简介及简单使用。CxImage类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。有的读者可能说,有那么多优秀的图形库,如OpenIL,FreeImage,PaintLib等等,它们可谓是功能强大,齐全,没必要用其它的类库。但我要说,这些类库基本上没有免费的,使用这些类库,你要被这样那样的许可协议所束缚。在这点...

资深码农:最近关于编程的一些反思

发布时间:2017-08-01 C/C++ PYTHON
关于技术大牛很火的一般不是大牛。因为如果要很火,就需要时间去营销。而营销能力与技术能力是正交的,如果一个人把很多时间放在营销上,就很难有时间放在技术提高上。不要因为他讲一个你不懂的领域而认为他是大牛,一个住在沙漠里的人听到任何一个看过海的人的描述都可以令他兴奋万分,但如果别人告诉他骆驼有六只脚,他肯定会嗤之以鼻。大牛对他熟悉的领域会说得很详细,对他不熟悉的领域也会问正确的问题。关于学习新知识学习一...

HDU2102 A计划

发布时间:2016-08-10 C/C++
又一个三维迷宫!问题链接:HDU2102A计划。问题简述:参见上述链接问题分析:虽然是三维迷宫,其实只有两层,骑士进入迷宫营救公主,找到公主即可。迷宫的入口是S(0,0,0),公主位置为'P',时空传输机为'#'表示,墙为'*'表示,平地为'.'。层间移动只能通过时空传输机,并且不需要时间。骑士在同一层中只能前后左右移动,每移动一格花1时刻。输入n,有n组测试数据,每个测试数据有一行三个整数N、M...

简简单单static

发布时间:2020-12-04 C STATIC 嵌入式 C++ C/C++
前言static,静态的,在C/C++中经常喜欢问它的作用,那么,应该简简单单的把它记录一下一正文1.1C语言中在C语言中,static有下3个作用:static修饰全局变量:被修饰的全局变量的作用域范围限定为本源文件,另外的源文件不能通过extern关键词来使用这个全局变量。(该变量存放在静态变量区)static修饰局部变量:a)被修饰的局部变量只能被初始化一次。b)被修饰的局部变量的存储空间发...

C++ 二维数组作为形参传递使用实例

发布时间:2018-07-20 C/C++
在线代码编辑器:http://codepad.org/1、*指针1voiddisplay(int*arr,constintrow,constintcol)2{3for(inti=0;i<row;++i)4{5for(intj=0;j<col;++j)6{7cout<<*(arr+i*col+j)<<"";8}9cout<<endl;10}11cout...

【C语言】二维数组做形参

发布时间:2015-07-08 C/C++
二维数组有两种形式:①在栈上:      inta[4][4]={...};②在堆堆上:       int**a=newint*[4];      for(inti=0;i<4;i++)         a[i]=newint[4]; 这两种情况下,二维数组做形参的传参方式是不一样的。 ①在栈上时voidfun(int*a,intrownum,intcolmunnum)  //形参传递按照...

Guess Number Higher or Lower II

发布时间:2016-09-25 C/C++
WeareplayingtheGuessGame.Thegameisasfollows:Ipickanumberfrom1ton.YouhavetoguesswhichnumberIpicked.Everytimeyouguesswrong,I’lltellyouwhetherthenumberIpickedishigherorlower.However,whenyouguessaparticul...

QQ本地号码修改

发布时间:2012-03-02 C/C++
看着有人写了一款本地修改QQ号码的,就知道只是改了本地的内存而以,不过感觉也挺有意思的,拿起CE(cheatengine),因为登陆了好几个QQ,用C++的spy++配合找到我要修改的那个QQ,在CE里查询我的QQ,然后找到相应的基址,改到地址030052D0的时候,QQ号变了,呵呵,就可以了。不过只是本地的,没多大的意义,哎,自我欣赏下吧。  刚要发布的时候就见证亲爱的博客园挂了,被DDos了?...

正整数分解

发布时间:2022-11-13 C/C++ 算法 深度优先 图论
44=3  14=22421141111  #include<stdio.h>inta[15],keep;voiddfs(intm,intc,intn){ if(!m){ printf("%d=",n); for(inti=0;i<keep-1;i++){ printf("%d+",a[i]); } printf("%d\n",a[keep-1]); return;...

Linux平台gcc和动态共享库的基础知识

发布时间:2012-04-08 C/C++ JAVA 操作系统
http://www.iteye.com/topic/261176  对大多数不从事Linux平台C语言开发的人来说,GNUgcc的一套工具和Linux平台的共享库的使用还是十分陌生的,其实我也不太熟悉,姑且写点基础知识,权当做备忘吧。 一、GNUgcc的编译工具用法 我们先来写一个简单的C程序:hello.c C代码  #include <stdio.h>    void print...

python函数调用之自我调用与C++比较

发布时间:2018-01-16 C/C++ JAVA PYTHON
C++下的函数自我自我调用  第一种方法  1#include<iostream>2usingnamespacestd;34intrel_do(){56inta;7cout<<"pleaseinput:";8cin>>a;9if(a==1){10cout<<a;11return1;12}13elseif(a==2){14cout<<a;1...

C/C++的64位整型

发布时间:2011-07-02 LINUX 编译器 平台 GCC MICROSOFT C/C++ 跨平台
在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有longlong和__int64两种(VC还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout<<a三种方式。本文讨论的是五种常用的C/C++编译器对64位整型的...

解决Eclipse提示错误:Your project contains error(s)

发布时间:2018-06-19 移动开发 C/C++ 开发工具
为什么80%的码农都做不了架构师?>>>  有次在使用eclipse写好Android的代码,代码没有报错。然后想在AVD中运行测试时,总是会弹出错误框,提示信息为:“Yourprojectcontainserror(s),pleasefixthembeforerunningyourapplication.”最后发现Android要求所有的程序必须有签名,否则就不会安装该程序。在...

【C++自我精讲】基础系列四 static

发布时间:2013-07-14 C/C++
【C++自我精讲】基础系列四static0前言变量的存储类型:存储类型按变量的生存期划分,分动态存储方式和静态存储方式。 1)动态存储方式的变量,生存期为变量所在的作用域。即程序运行到此变量时才为其分配存储空间,作用域结束时,会自动收回为其分配的存储空间。 2)静态存储方式的变量,生存期为整个程序执行的过程。即程序开始时就为其分配存储空间,程序结束时,才会收回为其分配的存储空间。4种变量的存储类型...

[转] 漫谈NodeJS

发布时间:2011-07-04 C/C++ 网络 JAVASCRIPT VIEWUI
作者:zhangxin来源:http://blog.csdn.net/zhangxin09/article/details/5836777学习NodeJS第一天:node.js引言Node.JS是资深C程序员RyanDahl(http://four.livejournal.com/)的作品,依据Google著名的开源JavaScript引擎V8来进行二次开发的WebI/O服务器(http://no...

《Java程序员,上班那点事儿》荣登西单图书大厦销售榜第2名,立贴纪念!

发布时间:2009-08-07 C/C++ JAVA
《Java程序员,上班那点事儿》荣登北京新华书店销售榜第2名,立贴纪念! 今天得到消息,《Java程序员,上班那点事儿》荣登北京新华书店销售榜第二名! 包括四个书店的统计指标: 北发图书网、西单图书大厦、王府井书店、中关村图书大厦 链接如下:http://www.xhsd.com.cn/books/views.asp?PLUCODE=730220514   著名的谭浩强的《C语言程序设计》,据说一...

C语言extern引用AT&T汇编中的变量,任意转换类型

发布时间:2015-04-18 C/C++
今天研究出了一个小问题,在C语言里引用汇编的变量,会是什么结果,汇编中的变量没有像C语言中int类型那样的类型约束,可以把数据当作任何类型处理,那么传到C语言中我们应该当作什么类型处理呢。换句话说,在汇编里定义变量var,在C语言里引用,我们肯定要用extern声明var外部变量,那么extern后面接什么类型?难道是externintvar么?还是 externshortvar实例:注意:混合编...

跟我一起写 Makefile——1.11 隐含规则

发布时间:2013-03-08 C/C++ 操作系统
隐含规则————  在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o]文件,Windows下是[.obj]文件)。本章讲述的就是一些在Makefile中的“隐含的”,早先约定了的,不需要我们再写出来的规则。  “隐含规则”也就是一种惯例,make会按照这种“惯例”心照不喧地来运行,那怕我们的Makefi...

四、Android性能优化之性能优化工具

发布时间:2018-01-18 移动开发 C/C++ JAVA
性能优化的帮助工具:MAT,MemoryMonitor(属于AndroidMonitor中一个模块),HeapTool(查看堆信息),AllactionTracking,LeakCanaryLint工具1.AllactionTracking(1)追踪在内存图中点击途中箭头的部分,启动追踪,再次点击就是停止追踪,随后自动生成一个alloc结尾的文件,这个文件就记录了这次追踪到的所有数据,然后会在右上...

Delphi之DLL知识学习4---创建DLL

发布时间:2015-04-24 C/C++
  下面是在Delphi中创建一个DLL的全过程,你将看到怎样创建一个接口单元,使之可以被其他的应用程序访问。并且将学会怎么把Delphi的窗体加入DLL中。  一、数美分:一个简单的DLL  下面是包含一个例程的DLL例子。该例程是将以美分计算的货币换算成五分镍币、一角硬币的数目。1.一个简单的DLL  该DLL中包含PenniesToCoins()函数,下面完整的显示了该DLL项目文件代码li...

(转)C#学习入门基础

发布时间:2008-08-14 C/C++ JAVA C#
1         基本语法的学习与法学习主要包含了以下几个方面:(1)      基本的数据类型;(2)      字符串;(3)      控制语句;(4)      c#特殊的关键字;(5)      异常处理机制;1.1        基本的数据类型比较特殊的几个类型有:decimal;非齐整数组;定义常量的方式:(1)常量publicconstdoublegravitationalCon...

QPainter绘制图片填充方式(正常大小、剪切大小、自适应大小、平铺)

发布时间:2019-07-22 C/C++
Qt中QPainter提供了绘制图像的API,极大地方便了我们对图像的绘制。Qt中提供了QPixmap,QBitmap,QBitMapQImage,QPicture等图像绘图设备,它们的类关系如下图所示:QPixmap继承了QPaintDevice,您可用以建立QPainter并于上进行绘图,您也可以直接指定图案加载Qt所支持的图档,像是BMP、GIF、JPG、JPEG、PNG等,并使用QPain...

RP值

发布时间:2011-11-29 C/C++
前段时间,有看到小白问一个问题,大概就是这样while(big.size()>sml.size()+1)           //ACwhile(big.size()-sml.size()>1)           //WA如果判断写成第一种就能AC,写成第二种就WA了,为什么呢?然后,昨晚有遇到这样一种情况,小蒙有一段代码一直WA,我改了下AC了,其中a,b,c都是int型,如下。i...

OpenGL ES入门详解

发布时间:2016-04-18 移动开发 C/C++
 http://blog.csdn.net/wangyuchun_799/article/details/77369281.决定你要支持的OpenGLES的版本。目前,OpenGLES包含1.1和2.0两个版本,iPhone3G+和iPad开始支持OpenGLES2.0。而且这两个版本之间的差异非常大,不仅仅在编程思想上,API之间的差距也很大。因此,如果你想使用OpenGLES开发3D程序或游戏...

OpenGL ES2.0入门详解

发布时间:2015-11-02 移动开发 C/C++
引自:http://blog.csdn.net/wangyuchun_799/article/details/7736928     1.决定你要支持的OpenGLES的版本。目前,OpenGLES包含1.1和2.0两个版本,iPhone3G+和iPad开始支持OpenGLES2.0。而且这两个版本之间的差异非常大,不仅仅在编程思想上,API之间的差距也很大。因此,如果你想使用OpenGLES开发...