[ru] [en]

О проекте

HBICT – Hash Based Incremental Checkpointing Tool – это программный инструментарий сжатия контрольных точек восстановления параллельных программ. Он разработан для операционной системы (ОС) GNU/Linux и является свободным программным обеспечением.

Методы и алгоритмы, реализуемые в параллельных программах, характеризуются различным использованием доступной оперативной памяти. Например, для некоторых итерационных методов характерно лишь частичное изменение данных в процессе работы. Контрольные точки восстановления, создаваемые для таких программ, могут содержать дублирующуюся информацию. Сохранение в КТ только измененных фрагментов состояния программы может значительно снизить объемы передаваемых и хранимых данных и, тем самым, уменьшить нагрузку на подсистему ввода-вывода. Данный подход называется дельта-сжатием (delta-compression).

Поддерживаемые HBICT виды сжатия:

  • инкрементное – предусматривает дельта-сжатие каждой КТ, начиная со второй, относительно предыдущей КТ;
  • дифференциальное – предполагает сжатие всех КТ относительно первой;
  • адаптивное – оригинальный алгоритм, позволяющий объединить достоинства инкрементного и дифференциального сжатия;
  • комбинированное – режим, предусматривающий дополнительную обработку дельта-сжатых КТ алгоритмом LZ77, реализованным в программе GZIP.

Режимы инкрементного, дифференциального и адаптивного сжатия основаны на алгоритме FIC [1]/FsCH [2]. Данный алгоритм не позволяет обнаруживать удаление и вставку фрагментов КТ, однако обеспечивает приемлемый уровень накладных расходов по сравнению с более точными алгоритмами (например, rsync).

Инструкции по настройке и установке HBICT

1. Скачайте последнюю версию пакета HBICT (hbict-X.Y.tar.gz) и сохраните ее в каталоге, в котором предполагается выполнять сборку пакета из исходных кодов. 2. Распакуйте исходные коды, выполните конфигурацию и сборку:

tar –xzvf hbict-X.Y.tar.gz
cd hbict-X.Y
./configure --help
./configure
make
[sudo] make install
3. Для использования HBICT как отдельного инструмента ознакомьтесь со справочной страницей:
$ ./hbict
Usage:
hbict [-nzbfhu] -c <signature> [-o <outfile>] [<infile>]
    Create a delta-compressed checkpoint.
    If the  file does not exist, then treat the
    input as the 	base checkpoint and create a 
    file. By default  = stdout,  = stdin.
    -u causes hbict to update signature with the 
    current checkpoint.
hbict [-zbfh] -a [-o outfile] [infile]
    Create delta-compressed checkpoint using automatic mode.
    All needed information is stored in a service location.
    In this mode adaptive checkpoints are created (instead
    of incremental or differential checkpoints). Automatical
    suffixes ".hbict.X" are added to each compressed file
    based on a sequence number X.
hbict -r [-o <outfile>] <infile1> [<infile2> ... <infileN>]
    Create a full checkpoint file using the base checkpoint 
    and additional delta-compressed checkpoints.
    By default  = stdout.
Options can be one of the following:
    -n, --serial-number serial number of checkpoint
    -z, --gzip          additional gzip compression
    -m, --use-mmap      use mmap for reading compressed files
    -b, --block-size    hash block size
    -f, --buf-size      input buffer size
4. Для использования HBICT совместно с пакетом DMTCP смотрите соответствующий раздел.

Литература

[1] Agarwal, S. Adaptive incremental checkpointing for massively parallel systems / S. Agarwal, R. Garg, M.S. Gupta, J.E. Moreira // ICS ’04: Proceedings of the 18th Annual International Conference on Supercomputing. – New York: ACM Press, 2004. – P. 277 –  286.

[2] Kiswany, S.A. stdchk: A Checkpoint Storage System for Desktop Grid Computing / S.A. Kiswany, M. Ripeanu, S.S. Vazhkudai, A. Gharaibeh // Proc. of ICDCS 2008. – USA, DC, Washington: IEEE Computer Society, 2008. – P. 613 –  624 – ISSN 978-0-7695-3172-4.