23
#define FAILURE_SIZE_ 512
26
double *ptr_arr[MAXPROCS];
32
for (i = 0; i < sz; i++) {
33
*((double *)(ptr_arr[me]) + i) = i + 1.12 * d++;
36
static double time_array[100], time_array1[100], t1;
37
int main(int argc, char *argv[])
39
int rc, i, j = 0, rid, ret;
40
armci_ckpt_ds_t ckptds;
43
ARMCI_Init_args(&argc, &argv);
44
nproc = armci_msg_nproc();
48
if (nproc > MAXPROCS) {
49
ARMCI_Error("nproc > MAXPROCS", nproc);
52
printf("ARMCI test program (%d processes)\n", nproc);
58
armci_init_checkpoint2();
59
ARMCI_Group_get_world(&grp);
61
rc = ARMCI_Malloc((void **)ptr_arr, size * 8);
62
printf("ARMCI test program (%d processes)\n", nproc);
64
for (size = 1; size <= SIZE_; size *= 2) {
66
for (i = 0; i < 5; i++) {
67
for (rc = 0; rc < 15; rc++) {
71
time_array[j++] = MPI_Wtime() - t1;
73
printf("%d:done for size %ld\n", me, size);
77
(void)ARMCI_Ckpt_create_ds(&ckptds, 1);
78
ckptds.ptr_arr[0] = ptr_arr[me];
79
ckptds.sz[0] = SIZE_ * 8;
80
rid = ARMCI_Ckpt_init(NULL, &grp, 1, 0, &ckptds);
81
printf("%d: After ARMCI_Ckpt_init(): \n", me);
84
for (size = 128; size <= SIZE_; size *= 2) {
87
int simulate_restart = 1;
90
ret = ARMCI_Ckpt(rid);
91
if (ret == ARMCI_CKPT) {
92
printf("%d: Performed CHECKPOINT @ size=%ld\n", me, size);
94
else if (ret == ARMCI_RESTART) {
96
printf("%d: Performed RESTART @ size=%ld\n", me, size);
99
for (i = 0; i < 5; i++) {
100
for (rc = 0; rc < 15; rc++)
101
if (i == 3 && rc == 10) {
106
time_array1[j++] = MPI_Wtime() - t1;
109
if (simulate_restart && size == FAILURE_SIZE_) {
110
printf("%d: Simulating FAILURE @ size = %d\n", me, size);
111
ARMCI_Restart_simulate(rid, 1);
114
printf("%d: DONE for size=%ld regular=%f withckpt=%f\n\n",
115
me, size, time_array[j-1], time_array1[j-1]);
120
ARMCI_Ckpt_finalize(rid);
122
printf("Before Finalize()\n");
125
armci_msg_finalize();