# This is an example config file for pmembench

# Global parameters
[global]
file = /dev/shm/testfile.tx
group = pmemobj
ops-per-thread = 100

# obj_tx_alloc benchmark
# variable threads number
# one type-number
[obj_tx_alloc_thread_one_type_num]
bench = obj_tx_alloc
threads = 1:+1:5
data-size = 512

# obj_tx_alloc benchmark
# variable threads number
# one type-number per thread
[obj_tx_alloc_thread_per_thread_type_num]
bench = obj_tx_alloc
threads = 1:+1:5
data-size = 512
type-number = per-thread

# obj_tx_alloc benchmark
# variable allocation size
# abort every nested transaction
# rand type-number
[obj_tx_alloc_sizes_abort_nested]
bench = obj_tx_alloc
data-size = 8:*2:16384
operation = abort-nested
nestings = 100
type-number = rand

# obj_tx_alloc benchmark
# variable allocation size
# use file io instead pmem
# rand type-number
[obj_tx_alloc_sizes_file_io]
bench = obj_tx_alloc
data-size = 8:*2:16384
nestings = 100
lib = dram
type-number = rand

# obj_tx_alloc benchmark
# variable allocation size
# pmem without transactions
# rand type-number
[obj_tx_alloc_sizes_atomic]
bench = obj_tx_alloc
data-size = 8:*2:16384
nestings = 100
lib = pmem
type-number = rand

# obj_tx_alloc benchmark
# variable number of nested transactions
# abort every nested transaction
# rand type-number
[obj_tx_alloc_nestings_abort_nested]
bench = obj_tx_alloc
data-size = 512
min-size = 1
operation = abort-nested
nestings = 1:*10:10000
type-number = rand

# obj_tx_alloc benchmark
# variable number of nested transactions
# use file io instead pmem
# rand type-number
[obj_tx_alloc_nestings_file_io]
bench = obj_tx_alloc
data-size = 512
min-size = 1
nestings = 1:*10:10000
lib = dram
type-number = rand

# obj_tx_alloc benchmark
# variable number of nested transactions
# pmem without transactions
# rand type-number
[obj_tx_alloc_nestings_atomic]
bench = obj_tx_alloc
data-size = 512
min-size = 1
nestings = 1:*10:10000
lib = pmem
type-number = rand

# obj_tx_free benchmark
# variable allocation size
# abort every nested transaction
# rand type-number
[obj_tx_free_sizes_abort_nested]
bench = obj_tx_free
data-size = 8:*2:8192
operation = abort-nested
nestings = 100
type-number = rand

# obj_tx_free benchmark
# variable allocation size
# use file io instead pmem
# rand type-number
[obj_tx_free_sizes_file_io]
bench = obj_tx_free
data-size = 8:*2:8192
nestings = 100
lib = dram
type-number = rand

# obj_tx_free benchmark
# variable allocation size
# pmem without transactions
# rand type-number
[obj_tx_free_sizes_atomic]
bench = obj_tx_free
data-size = 8:*2:8192
nestings = 100
lib = pmem
type-number = rand

# obj_tx_free benchmark
# variable number of nested transactions
# abort every nested transaction
# rand type-number
[obj_tx_free_nestings_abort_nested]
bench = obj_tx_free
data-size = 512
min-size = 1
operation = abort-nested
nestings = 1:*10:10000
type-number = rand

# obj_tx_free benchmark
# variable number of nested transactions
# use file io instead pmem
# rand type-number
[obj_tx_free_nestings_file_io]
bench = obj_tx_free
data-size = 512
min-size = 1
nestings = 1:*10:10000
lib = dram
type-number = rand

# obj_tx_free benchmark
# variable number of nested transactions
# pmem without transactions
# rand type-number
[obj_tx_free_nestings_atomic]
bench = obj_tx_free
data-size = 512
min-size = 1
nestings = 1:*10:10000
lib = pmem
type-number = rand

# obj_tx_realloc benchmark
# variable allocation size
# abort every nested transaction
# rand type-number
[obj_tx_realloc_data_sizes_abort]
bench = obj_tx_realloc
data-size = 8:*2:8192
realloc-size = 64
min-rsize = 1
operation = abort
nestings = 100
type-number = rand

# obj_tx_realloc benchmark
# variable allocation size
# use file io instead pmem
# rand type-number
[obj_tx_realloc_data_sizes_file_io]
bench = obj_tx_realloc
data-size = 8:*2:8192
realloc-size = 64
min-rsize = 1
nestings = 100
lib = dram
type-number = rand

# obj_tx_realloc benchmark
# variable allocation size
# pmem without transactions
# rand type-number
[obj_tx_realloc_data_sizes_atomic]
bench = obj_tx_realloc
data-size = 8:*2:8192
realloc-size = 64
min-rsize = 1
nestings = 100
lib = pmem
type-number = rand

# obj_tx_realloc benchmark
# variable reallocation size
# abort every nested transaction
# rand type-number
# another type number in realloc than in alloc
[obj_tx_realloc_sizes_abort]
bench = obj_tx_realloc
data-size = 4
min-size = 1
realloc-size = 256:*2:16384
operation = abort
changed-type = true
type-number = rand

# obj_tx_realloc benchmark
# variable reallocation size
# use file io instead pmem
# rand type-number
[obj_tx_realloc_sizes_file_io]
bench = obj_tx_realloc
data-size = 4
min-size = 1
realloc-size = 256:*2:16384
lib = dram
type-number = rand

# obj_tx_realloc benchmark
# variable reallocation size
# abort every nested transaction
# rand type-number
# another type number in realloc than in alloc
[obj_tx_realloc_sizes_atomic]
bench = obj_tx_realloc
data-size = 4
min-size = 1
realloc-size = 256:*2:16384
lib = pmem
changed-type = true
type-number = rand

# obj_tx_add_range benchmark
# variable allocation size
# allocate different objects
# in one transaction
# rand type-number
[obj_tx_add_sizes_all_obj]
bench = obj_tx_add_range
data-size = 128:*2:16384
operation = all-obj
type-number = rand

# obj_tx_add_range benchmark
# variable operations number
# allocate different objects
# in one transaction
# rand type-number
[obj_tx_add_ops_all_obj]
bench = obj_tx_add_range
data-size = 512
operation = all-obj
ops-per-thread = 1:*5:625
type-number = rand

# obj_tx_add_range benchmark
# variable allocation size
# allocate one object
# in one transaction
# rand type-number
[obj_tx_add_sizes_one_obj]
bench = obj_tx_add_range
data-size = 128:*2:16384
operation = basic
type-number = rand

# obj_tx_add_range benchmark
# variable operations number
# allocate one object
# in one transaction
# rand type-number
[obj_tx_add_ops_one_obj]
bench = obj_tx_add_range
data-size = 10000
operation = basic
ops-per-thread = 1:*5:78125
type-number = rand

# obj_tx_add_range benchmark
# variable allocation size
# allocate parts of one object
# in one transaction
# rand type-number
[obj_tx_add_sizes_range]
bench = obj_tx_add_range
data-size = 128:*2:16384
operation = range
type-number = rand

# obj_tx_add_range benchmark
# variable operations number
# allocate parts of one object
# in one transaction
# rand type-number
[obj_tx_add_ops_range]
bench = obj_tx_add_range
data-size = 10000
operation = range
ops-per-thread = 1:*5:625
type-number = rand

# obj_tx_add_range benchmark
# variable allocation size
# allocate all objects
# in many nested transactions
# rand type-number
[obj_tx_add_sizes_all_obj_nested]
bench = obj_tx_add_range
data-size = 128:*2:16384
operation = all-obj-nested
type-number = rand

# obj_tx_add_range benchmark
# variable operations number
# allocate all objects
# in many nested transactions
# rand type-number
[obj_tx_add_ops_all_obj_nested]
bench = obj_tx_add_range
data-size = 10000
operation = all-obj-nested
ops-per-thread = 1:*5:625
type-number = rand

# obj_tx_add_range benchmark
# variable allocation size
# allocate one object
# in many nested transactions
# rand type-number
[obj_tx_add_sizes_one_obj_nested]
bench = obj_tx_add_range
data-size = 128:*2:16384
operation = one-obj-nested
type-number = rand

# obj_tx_add_range benchmark
# variable operations number
# allocate one object
# in many nested transactions
# rand type-number
[obj_tx_add_ops_one_obj_nested]
bench = obj_tx_add_range
data-size = 10000
operation = one-obj-nested
ops-per-thread = 1:*5:625
type-number = rand

# obj_tx_add_range benchmark
# variable allocation size
# allocate parts of one object
# in many nested transactions
# rand type-number
[obj_tx_add_sizes_range_nested]
bench = obj_tx_add_range
data-size = 128:*2:16384
operation = range-nested
type-number = rand

# obj_tx_add_range benchmark
# variable operations number
# allocate parts of one objects
# in many nested transactions
# rand type-number
[obj_tx_add_ops_range_nested]
bench = obj_tx_add_range
data-size = 10000
operation = range-nested
ops-per-thread = 1:*5:625
type-number = rand
