| مؤلف | اتصال | عنوان URL |
|---|---|---|
| فريق تطوير Blosc | [email protected] | https://www.blosc.org |
| غارقة | تصرفات GH | numFocus | مدونة لقواعد السلوك |
|---|---|---|---|
ملاحظة : هناك نسخة أكثر حداثة من هذه الحزمة تسمى C-BLOSC2 والتي تدعم العديد من الميزات ويتم الحفاظ عليها بشكل أكثر نشاطًا. تفضل بزيارتها على: https://github.com/blosc/c-blosc2
Blosc هو ضاغط عالي الأداء محسن للبيانات الثنائية. لقد تم تصميمه لنقل البيانات إلى ذاكرة التخزين المؤقت المعالج بشكل أسرع من نهج جلب الذاكرة التقليدية غير المضغوطة ، عبر استدعاء OS MEMCPY (). BLOSC هو ضاغط الأول (الذي أدركه) الذي لا يهدف فقط إلى تقليل حجم مجموعات البيانات الكبيرة على القرص أو في الذاكرة ، ولكن أيضًا لتسريع الحسابات المرتبطة بالذاكرة.
يستخدم تقنية الحظر وذلك لتقليل النشاط في ناقل الذاكرة قدر الإمكان. باختصار ، تعمل هذه التقنية عن طريق تقسيم مجموعات البيانات في كتل صغيرة بما يكفي لتناسب ذاكرة التخزين المؤقت للمعالجات الحديثة وإجراء الضغط / إلغاء الضغط هناك. كما أنه يعزز ، إن كان متاحًا ، تعليمات SIMD (SSE2 ، AVX2) وقدرات متعددة الخيوط من وحدات المعالجة المركزية ، من أجل تسريع عملية الضغط / إزالة الضغط إلى الحد الأقصى.
شاهد بعض المعايير حول أداء BLOSC.
يتم توزيع BLOSC باستخدام ترخيص BSD ، راجع الترخيص. txt للحصول على التفاصيل.
لا يشبه C-Blosc ضواغط أخرى: يجب أن يطلق عليه اسم مكثف تلوي. هذا لأنه يمكن أن يستخدم ضواغط ومرشحات مختلفة (البرامج التي تعمل بشكل عام على تحسين نسبة الضغط). على أي حال ، يمكن أيضًا أن يطلق عليه ضاغط لأنه يحدث بالفعل أنه يأتي بالفعل مع العديد من الضاغط والمرشحات ، بحيث يمكن أن يعمل فعليًا مثل برنامج ترميز عادي.
يأتي حاليًا C-blosc مع دعم من Blosclz ، وهو ضاغط يعتمد بشكل كبير على Fastlz (https://ariya.github.io/fastlz/) ، LZ4 و LZ4HC (https://lz4.org/) ، snappy (https://google.github.io (https://zlib.net/) و Zstandard (https://facebook.github.io/zstd/).
يأتي C-BLOSC أيضًا مع تعليمات SSE2 أو AVX2 ، إذا كان متاحًا) مرشحات خلط ورش وبيتشوف (للحصول على معلومات حول كيف ولماذا تراه خلط هنا). ومع ذلك ، يمكن إضافة ضواغط أو مرشحات إضافية في المستقبل.
يتولى Blosc مسؤولية تنسيق الضاغط والمرشحات المختلفة حتى يتمكنوا من الاستفادة من تقنية الحظر بالإضافة إلى التنفيذ متعدد الخيوط (إذا كانت هناك عدة نوى متوفرة) تلقائيًا. هذا يجعل أن كل برامج ترميز ومرشح سيعملان بسرعات عالية جدًا ، حتى لو لم يتم تصميمه في البداية للقيام بالحظر أو الرئاسة المتعددة.
أخيرًا ، يعد C-BLOSC مناسبًا بشكل خاص للتعامل مع البيانات الثنائية لأنه يمكن أن يستفيد من المعلومات الوصفية لحجم النوع لتحسين نسبة الضغط باستخدام مرشحات خلط الخلط والبيتشوف المتكامل.
عندما يتم جمعها معًا ، تميز كل هذه الميزات Blosc بصرف النظر عن مكتبات الضغط الأخرى.
يمكن بناء Blosc واختبارها وتثبيتها باستخدام CMake_. يصف الإجراء التالي بناء "خارج المصدر".
$ cd c-blosc
$ mkdir build
$ cd buildقم الآن بتشغيل تكوين Cmake وحدد اختياريًا دليل التثبيت (على سبيل المثال/usr "أو"/usr/local '):
$ cmake -DCMAKE_INSTALL_PREFIX=your_install_prefix_directory ..يسمح CMake بتكوين BLOSC بعدة طرق مختلفة ، مثل تفضيل المصادر الداخلية أو الخارجية للضواغط أو تمكينها/تعطيلها. يرجى ملاحظة أنه يمكن أيضًا تنفيذ التكوين باستخدام أدوات واجهة المستخدم التي توفرها CMake (CCMAKE أو CMAKE-GUI):
$ ccmake .. # run a curses-based interface
$ cmake-gui .. # run a graphical interfaceبناء واختبار وتثبيت blosc:
$ cmake --build .
$ ctest
$ cmake --build . --target installسيتم تثبيت الإصدار الثابت والديناميكي من مكتبة BLOSC ، جنبًا إلى جنب مع ملفات الرأس ، في CMAKE_INSTALL_PREFIX المحدد.
يأتي C-Blosc مع مصادر كاملة لـ LZ4 و LZ4HC و Snappy و Zlib و ZSTD وبشكل عام ، يجب ألا تقلق بشأن عدم وجود (أو عدم العثور على) المكتبات في نظامك لأنه سيتم تجميع المصادر المضمّنة بشكل افتراضي وتضمينها في مكتبة C-Blosc. هذا يعني بشكل فعال أنه يمكنك أن تكون واثقًا من الحصول على دعم كامل لجميع برامج الترميز في جميع عمليات نشر BLOSC (إلا إذا كنت تستبعد صراحة الدعم لبعضها).
ولكن في حال كنت ترغب في إجبار Blosc على استخدام مكتبات الترميز الخارجية بدلاً من المصادر المضمنة ، يمكنك القيام بذلك:
$ cmake -DPREFER_EXTERNAL_ZSTD=ON ..يمكنك أيضًا تعطيل الدعم لبعض مكتبات الضغط:
$ cmake -DDEACTIVATE_SNAPPY=ON .. # in case you don't have a C++ compiler في الأمثلة/ الدليل ، يمكنك العثور على تلميحات حول كيفية استخدام BLOSC داخل تطبيقك.
تهدف BLOSC إلى دعم جميع المنصات حيث يمكن العثور على برنامج التحويل البرمجي C 89 المتوافق. تلك التي يتم اختبارها في الغالب هي Intel (Linux و Mac OSX و Windows) و ARM (Linux) ، ولكنها غريبة مثل معالج IBM Blue Q المدمج "A2".
إذا قمت بتشغيل مشكلات التجميع عند استخدام Mac OSX ، فيرجى التأكد من تثبيت أدوات مطور سطر الأوامر. يمكنك دائمًا تثبيتها بـ:
$ xcode-select --install Blosc لديه غلاف رسمي لبيثون. يرى:
https://github.com/blosc/python-blosc
يمكن استخدام BLOSC من سطر الأوامر باستخدام bloscpack. يرى:
https://github.com/blosc/bloscpack
بالنسبة لأولئك الذين يرغبون في استخدام BLOSC كمرشح في مكتبة HDF5 ، هناك تنفيذ عينة في مشروع HDF5-BLOSC في:
https://github.com/blosc/HDF5-LOSC
هناك قائمة بريدية رسمية لـ BLOSC على:
[email protected] https://groups.google.com/g/blosc
انظر شكرا.
استمتع بالبيانات!