做者:朱金燦框架
來源: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,具體以下圖:spa
這樣能夠生成一個叫HDF5.sln的解決方案文件,裏面的工程不少,通常只須要編譯hdf5-shared和hdf5-static兩個工程便可,具體以下圖:.net
編譯好了hdf5庫後,接下來測試使用只須要包含hdf5.h和連接對應的庫文件件便可。須要注意的是使用hdf5的動態庫須要增長一個預處理器:H5_BUILT_AS_DYNAMIC_LIB,在hdf5的官網上就有這樣一句提示:blog
To use the shared libraries on Windows with Visual Studio you must specify the H5_BUILT_AS_DYNAMIC_LIB compile definition.ip
hdf5-1.10.0-patch1的源碼及對應的VS2008解決方案已上傳至CSDN:支持MPI的hdf5最新源碼工程。ci