-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to install the h5pp or the h5cpp-compiler on macOS? #78
Comments
hmm... I don't quite have a mac-OS to work with, we could have a chat about this, if any interest? -- it should not be a biggie as LLVM tool chain works on mac. |
@steven-varga Hi! And thank you for your reply. I now could successfully compile the program by the following verbose command: But as I run the executible it gives the error of "unable to open dataset":
Do you happen to know any common causes to this error? I have been working too long only to try to read some hdf file. I have converted the original file to several JSON file to read into my program now. However, the JSON files appear to be much larger than the HDF files, I wonder if you think it will have performance issues? |
Can you list the version of the file? Would it be possible to try it with Not sure what you are trying to do; JSON is not for HPC, has different properties/use cases. In fact the acronym gives it away: JavaScript Object Notation whereas HDF5 is like ext4 filesystem with a convenient API, and most importantly MPI-IO capability. |
Sure. I'm using HDF 1.12.1. The code is below:
Regarding the choice of JSON. Well, I worked with JavaScript and Python the most, and I'm simply trying to read a 726*14729 matrix into my program so I though maybe dump the data in HDF into JSON and read the JSON into my program would be possible. By the way I'm using the nlohmann/json where the library is in a single header file. Should I delete the JSON object once the data are stored in matrices? |
I think I'm not expressing my concerns clearly enough. The computation-heavy part of my program would be in the calculation of the matrices, so I wonder if I could assume performance of the I/O part before is not as relevant? |
It depends on the size of the matrix and convenience. Some of us do prototyping on some statistical platform: Julia/Matlab/R and then save/export the file in HDF5. It is convenient to load it from C++ regardless of the size, then proceed to fast implementation using C++ with some linear algebra library. -- this is one use case of H5CPP. Alternatively you have 10GB - and up datasets, and you need efficient scalable IO. In the case the IO performance could be important. Overall you can think of this question as walking on a Pareto front of |
Thank you so much for your answer. The matrix is 72614965, and my out put is supposed to be 6 726726 matrices. If this prototyping to production workflow is so prevalent, then it's imperative for me to work out a way to make this library work on my computer. Because I'm a new big data research assistant at school, and while other team members do prototyping in R/Python, I have to deliver C++ code that implements their algorithm in parallelism. Anyway, I used |
It works on POSIX with C++17, and as I mentioned before I am opened to a conference call (I don't have a mac). Avoid using OS package manager -- this is HPC, where SPACK is more likely being used. Instead install components from source. Here is a laundry list:
I am working on a reference platform: a rental cluster on AWS EC2 with the proper settings and convenient vscode front end; but will take a few more weeks to bring it up online. Let me know about the call |
I actually noticed the issue #42 where you are testing h5cpp's compatibility with different compilers before submitting this issue. I'd love to go over the laundry list to install these components, but I have a deadline about 12 hours from now. I'll work on this in my next assignment and report it here. Thanks again for your help! I will try setting up a server environment to do the job as well. I'm familiar with vim, so I think I'll test h5cpp library before making further setting. |
@steven-varga Sorry to bother you again! I tried installing HDF5 1.10.6, but in this case I don't know where folder to put it. Should I dump them in the |
H5CPP doesn't care where you install HDF5. As for H5CPP headers: copy them to
And no need to link against |
It turned out that the Thank you @steven-varga for guiding me re-installing the libraries from the source and providing me the workflow around high-performance data I/O and computing. Your library is awesome! |
I'm sorry if it sounds a stupid question, but I'm very new to C++ development. Since I'm on the mac I couldn't follow the linux commands provided at the download page. I wonder how I could use this library (for example what files to copy and paste into the /usr/local/include directory) in an arbitrary project working with dlib.
The text was updated successfully, but these errors were encountered: