HDF5 اكتب توافق الخيط
-
30-09-2019 - |
سؤال
هل HDF5 قادرة على التعامل مع عدة مؤشرات ترابط من تلقاء نفسها ، أم أنه يجب مزامنة خارجيا؟ مثال OpenMP يشير إلى الأخير.
إذا كان الأول ، ما هي الطريقة الصحيحة لتحديد Dataspace للكتابة إليها؟
المحلول
Anycorn ،
يمكن لـ HDF5 التعامل مع خيوط متعددة دون مزامنة خارجية ، على الرغم من أن الكتابة ستظل متسلسلة. يجب عليك تجميع أحدث إصدار (1.8.6 اعتبارًا من 4/5/2011) وتشغيله ./configure
مع ال --enable-threadsafe
و -with-pthreads=/pthreads-include-path/,/pthreads-lib-path/
أعلام.
فمثلا:
./configure --enable-threadsafe -with-pthreads=/usr/include,/usr/lib
فيما يتعلق بتحديد dataspace للكتابة ، فإن أبسط طريقة هي بناء لوحة مستطيلة مستطيلة باستخدام صفيف متعدد الأبعاد ، وقيمة رتبة ، و H5Screate_simple
وظيفة. عادة ما يتبع المنجم نفس الخطوات:
//NUM = Number of spaces in this dimension
//Create a 1 dimensional array
hsize_t dsDim[1] = {NUM};
//Create the 1x1xNUM data space (rank param = 1).
hid_t dSpace = H5Screate_simple(1, dsDim, NULL);
...
Create datasets using the dataspace
...
//Release the data space
H5Sclose(dSpace);
أتمنى أن يساعدك هذا!
لا تنتمي إلى StackOverflow