#!/bin/sh
# Run sequential write tests

# Filesystem are created from all pci-e/mem devices from each node and were
# mounted at /test<node>/clameter

#DEFOPTS="--name=global --rw=write --size=4G --blocksize=2M --ioengine=pmemblk --thread=1 --fsync_on_close=1 --iodepth=4"
#DEFOPTS="--name=global --rw=write --size=4G --blocksize=2M --ioengine=mmap --fsync_on_close=1 --iodepth=4"
#DEFOPTS="--name=global --rw=write --size=4G --blocksize=4k --ioengine=mmap --fsync_on_close=1 --iodepth=4"
DEFOPTS="--name=global --rw=randread --size=10G --blocksize=4k --ioengine=mmap --iodepth=1 --fsync_on_close=1 $1"

NUMA0="--numa_cpu_nodes=0 --numa_mem_policy=bind:0 --filename=/test0/clameter/seqtest"
NUMA1="--numa_cpu_nodes=1 --numa_mem_policy=bind:1 --filename=/test1/clameter/seqtest"


sync
sleep 1
echo
echo "Single thread. Node 0"
echo "---------------------------------"
echo "fio/fio $DEFOPTS --name=job1 $NUMA0"
fio/fio $DEFOPTS --name=job1 $NUMA0| grep " READ:"

sync
sleep 1
echo
echo "Single thread. Node 1"
echo "---------------------------------"
echo "fio/fio $DEFOPTS --name=job1 $NUMA1"
fio/fio $DEFOPTS --name=job1 $NUMA1| grep " READ:"

#if false; then
# 2 threads test on two numa nodes

THREADOPTS="--name=job1 $NUMA0 --name=job2 $NUMA1"
sync
sleep 1
echo
echo "2 threads on 2 nodes"
echo "-------------------------------"

fio/fio $DEFOPTS $THREADOPTS | grep " READ:"

# 4 thread tests

THREADOPTS="--name=job1 $NUMA0 --name=job2 $NUMA0 --name=job3 $NUMA1 --name=job4 $NUMA1"
sync
sleep 1
echo
echo "4 threads ( 2 on each of 2 nodes)"
echo "-------------------------------------"

fio/fio $DEFOPTS $THREADOPTS | grep " READ:"

# 8 thread tests

THREADOPTS="--name=job1 $NUMA0 --name=job2 $NUMA0 --name=job3 $NUMA0 --name=job4 $NUMA0 --name=job5 $NUMA1 --name=job6 $NUMA1 --name=job7 $NUMA1 --name=job8 $NUMA1"
sync
sleep 1
echo
echo "8 threads ( 4 on each of 2 nodes)"
echo "-------------------------------------"

fio/fio $DEFOPTS $THREADOPTS | grep " READ:"

# 24 threads
THREADOPTS="--name=job1 $NUMA0 --name=job2 $NUMA0 --name=job3 $NUMA0 --name=job4 $NUMA0 --name=job5 $NUMA0 --name=job6 $NUMA0 --name=job7 $NUMA0 --name=job8 $NUMA0 --name=job9 $NUMA0 --name=job10 $NUMA0 --name=job11 $NUMA0 --name=job12 $NUMA1 --name=job13 $NUMA1 --name=job14 $NUMA1 --name=job15 $NUMA1 --name=job16 $NUMA1 --name=job17 $NUMA1 --name=job18 $NUMA1 --name=job19 $NUMA1 --name=job20 $NUMA1  --name=job21 $NUMA1 --name=job22 $NUMA1 --name=job23 $NUMA1"
sync
sleep 1
echo
echo "24 threads ( 12 on each of 2 nodes)"
echo "-------------------------------------"

fio/fio $DEFOPTS $THREADOPTS | grep " READ:"

# 32 threads
THREADOPTS="--name=job1 $NUMA0 --name=job2 $NUMA0 --name=job3 $NUMA0 --name=job4 $NUMA0 --name=job5 $NUMA0 --name=job6 $NUMA0 --name=job7 $NUMA0 --name=job8 $NUMA0 --name=job9 $NUMA0 --name=job10 $NUMA0 --name=job11 $NUMA0 --name=job12 $NUMA0 --name=job13 $NUMA0 --name=job14 $NUMA0 --name=job15 $NUMA0 --name=job16 $NUMA1 --name=job17 $NUMA1 --name=job18 $NUMA1 --name=job19 $NUMA1 --name=job20 $NUMA1  --name=job21 $NUMA1 --name=job22 $NUMA1 --name=job23 $NUMA1 $NUMA1 --name=job24 $NUMA1 --name=job25 $NUMA1 --name=job26 $NUMA1 --name=job27 $NUMA1 --name=job28 $NUMA1 --name=job29 $NUMA1 --name=job30 $NUMA1 --name=job31 $NUMA1"
sync
sleep 1
echo
echo "32 threads ( 16 on each of 2 nodes)"
echo "-------------------------------------"

fio/fio $DEFOPTS $THREADOPTS | grep " READ:"

#fi

