Skip to content

Instantly share code, notes, and snippets.

@abcinje
Last active February 17, 2022 10:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abcinje/7afe6d998bb9f6958d22480819110b57 to your computer and use it in GitHub Desktop.
Save abcinje/7afe6d998bb9f6958d22480819110b57 to your computer and use it in GitHub Desktop.

CkptFS

Running drainer

# 환경변수 CKPT, BB, PFS가 set되어 있는 경우
build/bin/drainer
# 그렇지 않은 경우
CKPT=<ckpt_path> BB=<bb_path> PFS=<pfs_path> build/bin/drainer

Running applications

# drainer와 마찬가지로 환경변수 CKPT, BB, PFS가 설정되지 않았거나
# 변경하고 싶은 경우에만 CKPT, BB, PFS를 설정
LD_PRELOAD=build/lib/libckpt.so <command>
# Example
LD_PRELOAD=build/lib/libckpt.so mpirun --oversubscribe -np 8 ior -a POSIX -w -k -e -F -i1 -t 1m -b 1g -o $CKPT/result

Configurations

  • FSYNC_LAZY_LEVEL={0, 1, 2, 3} (기본값: 0)

    • 0: 변화 없음

    • 1: fsync()가 호출되면 실제로는 fsync()를 바로 수행하지 않고 close() 시 수행함. 실제 fsync()를 수행할 때 drainer가 작업을 완료할 때까지 대기

    • 2: fsync()가 호출되면 실제로는 fsync()를 바로 수행하지 않고 close() 시 수행함. 실제 fsync()를 수행할 때 drainer가 작업을 완료할 때까지 대기하지 않음

    • 3: fsync()를 수행하지 않음

  • BATCH_SIZE=<num_bytes> (기본값: 0)

# Example
LD_PRELOAD=build/lib/libckpt.so FSYNC_LAZY_LEVEL=1 BATCH_SIZE=1048576 mpirun --oversubscribe -np 8 ior -a POSIX -w -k -e -F -i1 -t 1m -b 1g -o $CKPT/result
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment