-
Notifications
You must be signed in to change notification settings - Fork 0
Numerical Experiments in Papers
- Table of Contents
- CMAP-LAP [Tat+21a]
- CMAP-DeepBKZ [Tat+21b]
- Reference
This experiment is for evaluation the effect of information-sharing scheme of CMAP-TEST.
Common settings for this experiment are follows.
- 1 supervisor process
- 143 solver processes
- all solvers execute DeepBKZ lattice basis reduction algorithm
These CMAP-LAP parameter setting enable us to realize "all solvers execute DeepBKZ".
NumOfInitialDeepBkzSolvers = -1 # assign DeepBKZ algorithm to all remaining solvers
NumOfInitialEnumSolvers = 0 # do not assign ENUM algorithm
NumOfInitialSieveSolvers = 0 # do not assign Sieve algorithm
We executed CMAP-TEST following three patterns.
- size of share-data pool = 100,000
- size of share-data pool = 1
- size of share-data pool = 0
We can change the size of share-data pool by setting ShareDataPoolSize
value.
ShareDataPoolSize = 100000
We show the full setting file for size of share-data pool = 100,000, for example.
# -------------------------------------------
# Logging
# -------------------------------------------
Quiet = FALSE
LogSolvingStatus = TRUE
LogSolvingStatusFilePath = "./logs/all_deepbkz.poolsize100000__"
CheckpointFilePath = "./logs/all_deepbkz.poolsize100000__"
SolutionFilePath = "./logs/all_deepbkz.poolsize100000__"
# ------------------------------------------
# Checkpoint
# ------------------------------------------
Checkpoint = TRUE
CheckpointInterval = 600
# ------------------------------------------
# Base ( Communication )
# ------------------------------------------
TimeLimit = 3600
NotificationInterval = 60
IReceiveInterval = 1
ShareVectorsInterval = 10
CMapLapParamFilePath = "./settings/cmaplap.ug.param"
# ------------------------------------------
# Base ( LC )
# ------------------------------------------
NumOfInitialDeepBkzSolvers = -1
NumOfInitialEnumSolvers = 0
NumOfInitialSieveSolvers = 0
ShareDataPoolSize = 100000
# ------------------------------------------
# DeepBkz
# ------------------------------------------
# ReductionType; 1 no-communication, 2 parallel
DeepBkzReductionType = 2
DeepBkzStartBlockSize = 30
DeepBkzEndBlockSize = 30
DeepBkzBlockSizeInterval = 5
RandomizeRows = -1
DeepBkzNumOfSendVectorsToPool = 5
DeepBkzNumOfReceiveVectorsFromPool = 1
mpiexec.hydra -n 4 ./bin/paracmaptest ./settings/cmaplap.paper/all_deepbkz.poolsize0.set ./storage/svpmatrix/dim100/LLL/dim100seed0LLL.txt -ntpr 1
mpiexec.hydra -n 4 ./bin/paracmaptest ./settings/cmaplap.paper/all_deepbkz.poolsize1.set ./storage/svpmatrix/dim100/LLL/dim100seed0LLL.txt -ntpr 1
mpiexec.hydra -n 4 ./bin/paracmaptest ./settings/cmaplap.paper/all_deepbkz.poolsize100000.set ./storage/svpmatrix/dim100/LLL/dim100seed0LLL.txt -ntpr 1
This experiment is for evaluation the effect of heterogeneous algorithm execution scheme of CMAP-TEST.
- 1 supervisor process
- 143 solver processes
- size of share-data pool = 100,000
We executed CMAP-TEST following four patterns.
1. (DeepBKZ, sub-ENUM, GaussSieve) = (143, 0, 0)
2. (DeepBKZ, sub-ENUM, GaussSieve) = (126, 16, 1)
3. (DeepBKZ, sub-ENUM, GaussSieve) = (110, 32, 1)
4. (DeepBKZ, sub-ENUM, GaussSieve) = (78, 64, 1)
We can change the number of algorithms by setting NumOfInitialDeepBkzSolvers
, NumOfInitialEnumSolvers
and NumOfInitialSieveSolvers
.
For example, when we want to execut (DeepBKZ, sub-ENUM, GaussSieve) = (78, 64, 1) configure, we set the parameters as follows.
NumOfInitialDeepBkzSolvers = 78
NumOfInitialEnumSolvers = 64
NumOfInitialSieveSolvers = 1
We show the full setting file for (DeepBKZ, sub-ENUM, GaussSieve) = (78, 64, 1) configure.
# -------------------------------------------
# Logging
# -------------------------------------------
Quiet = FALSE
LogSolvingStatus = TRUE
LogSolvingStatusFilePath = "./logs/deepbkz78.enum64.sieve1__"
CheckpointFilePath = "./logs/deepbkz78.enum64.sieve1__"
SolutionFilePath = "./logs/deepbkz78.enum64.sieve1__"
# ------------------------------------------
# Checkpoint
# ------------------------------------------
Checkpoint = TRUE
CheckpointInterval = 600
# ------------------------------------------
# Base ( Communication )
# ------------------------------------------
TimeLimit = 3600
NotificationInterval = 60
IReceiveInterval = 1
ShareVectorsInterval = 10
CMapLapParamFilePath = "./settings/cmaplap.ug.param"
# ------------------------------------------
# Base ( LC )
# ------------------------------------------
NumOfInitialDeepBkzSolvers = 78
NumOfInitialEnumSolvers = 64
NumOfInitialSieveSolvers = 1
ShareDataPoolSize = 100000
# ------------------------------------------
# DeepBkz
# ------------------------------------------
# ReductionType; 1 no-communication, 2 parallel
DeepBkzReductionType = 2
DeepBkzStartBlockSize = 30
DeepBkzEndBlockSize = 30
DeepBkzBlockSizeInterval = 5
RandomizeRows = -1
DeepBkzNumOfSendVectorsToPool = 10
DeepBkzNumOfReceiveVectorsFromPool = 1
# ------------------------------------------
# Enum
# ------------------------------------------
EnumPruningParameter = 1e-10
EnumSamplingDepth = 3
EnumNumOfSendVectorsToPool = 10
# ------------------------------------------
# Sieve
# ------------------------------------------
SieveMaxCollision = -1
SieveMaxListSize = -1
SieveMaxStackSize = -1
SieveNumOfSendVectorsToPool = 5
SieveNumOfReceiveVectorsFromPool = 100
mpirun -n 144 ./bin/paracmaptest ./settings/cmaplap.paper/deepbkz143.enum0.sieve0.set ./storage/svpmatrix/dim100/LLL/dim100seed0LLL.txt -ntpr 1
mpirun -n 144 ./bin/paracmaptest ./settings/cmaplap.paper/deepbkz126.enum16.sieve1.set ./storage/svpmatrix/dim100/LLL/dim100seed0LLL.txt -ntpr 1
mpirun -n 144 ./bin/paracmaptest ./settings/cmaplap.paper/deepbkz110.enum32.sieve1.set ./storage/svpmatrix/dim100/LLL/dim100seed0LLL.txt -ntpr 1
mpirun -n 144 ./bin/paracmaptest ./settings/cmaplap.paper/deepbkz78.enum64.sieve1.set ./storage/svpmatrix/dim100/LLL/dim100seed0LLL.txt -ntpr 1
This experiment is for quantify the diversity of bases while lattice basis reduction.
We use synchronous_cmapdeepbkz
binary.
Common settings for this experiment are follows.
- Syncronous experimtents
- number of solvers = 100 (
--num_solvers
option) - all solvers execute DeepBKZ with blocksize = 30 (
-b
option) - number of tours = 200 (
--total_tour
option)
We experiments while changine number of shared vectors (--num_shares
option).
Experiment command is follows.
./bin/synchronous_cmapdeepbkz -i ./storage/svpmatrix/dim90/LLL/dim90seed0LLL.txt -b 30 --num_solvers 100 --num_threads 4 --num_shares 1 --total_tour 200
This experiment is to investigate the heuristic of [22, Heuristic 3].
- Generate 100 random basis copies
- Run DeepBKZ 100 tour independently
- Visualize (i,Divi(C,dg)− Divi(B, dg))
Experiment command is follows.
./bin/synchronous_cmapdeepbkz -i ./storage/svpmatrix/dim90/LLL/dim90seed0LLL.txt -b 30 --num_solvers 100 --num_threads 4 --num_shares 0 --total_tour 100
This experiment is to evaluate the efficiency for sharing a part of lattice basis of each lattice reduction solvers.
- Number of solvers is 2303
- All solvers run DeepBKZ with blocksize 30
We experiments while chaning number of lattice vectors shared by setting DimensionOfSharedLattice
parameter, e.g,
DimensionOfSharedLattice = 32
mpirun -n 2304 ./bin/paracmapdeepbkz ./settings/cmapdeepbkz.paper/share0.set ./storage/sample_mats/dim100.txt -ntpr 1
[Tat+21a] Nariaki Tateiwa, Yuji Shinano, Keiichiro Yamamura, Akihiro Yoshida, Shizuo Kaji, Masaya Yasuda, and Katsuki Fujisawa. “CMAP-LAP: Configurable massively parallel solver for lattice problems”. In: 2021 IEEE 28th International Conference on High Performance Computing, Data, and Analytics (HiPC). IEEE. 2021, pp. 42–52.
[Tat+21b] Nariaki Tateiwa, Yuji Shinano, Masaya Yasuda, Shizuo Kaji, Keiichiro Yamamura, and Katsuki Fujisawa. Massively parallel sharing lattice basis reduction. eng. Tech. rep. 21-38. Takustr. 7, 14195 Berlin: ZIB, 2021.