...
this will generate everything in a folder named 34754174
. For the impatient, my plotting terminal actually runs the disk checker (see below), and the plotter periodically:
Code Block | ||
---|---|---|
| ||
while sleep 60 ; do bash makeplot.sh 34754174 ; done & while sleep 1; do if [ ! -e 34754174/*_psi_scratch ]; then continue; fi echo -n "$(date +%s ) "; du -s 34754174/*_psi_scratch | awk '{print $1}'; done >> 34754174/disk.dat & |
...
The python plotter (name this plot.py
):
Code Block | ||
---|---|---|
| ||
import matplotlib.pyplot as plt import numpy as np import os fig = plt.figure(figsize=(12*4, 5), dpi=200) ax = fig.add_subplot(111) x, y = np.loadtxt("main.dat").T xmin = x.min() ax.plot(x-xmin, y / 1024 ** 2, "b", lw=0.3, label="geometric") x, y = np.loadtxt("psi4.dat").T ax.plot(x-xmin, y / 1024 ** 2, "r", lw=0.3, label="psi4") x, y = np.loadtxt("memlimit.dat").T ax.plot(x-xmin, y, "k", label="mem specified") if os.path.exists("cache.dat"): x, y = np.loadtxt("cache.dat").T try: size_x = len(x) if size_x > 0: ax.plot(x-xmin, y / 1024 ** 3, "g", lw=0.3, label="B cache") except Exception: pass if os.path.exists("disk.dat"): x, y = np.loadtxt("disk.dat").T try: size_x = len(x) if size_x > 0: ax.plot(x - xmin, y / 1024 ** 2, "g", lw=0.3, label="Disk space") except Exception: pass ax.set_xlabel("Time (seconds)") ax.set_ylabel("Memory (GB)") ax.legend(loc=3) ax.tick_params(labeltop=False, labelright=True) ax.grid(axis='y') fig.tight_layout() fig.savefig("mem.png") |
As can be seen from the plotter, I decided to record disk usage of the psi4 scratch about half way through the experiments. To enable this, I ran this in the background:
Code Block | ||
---|---|---|
| ||
while sleep 1; do if [ ! -e 34754174/*_psi_scratch ]; then continue; fi echo -n "$(date +%s ) "; du -s 34754174/*_psi_scratch | awk '{print $1}'; done >> 34754174/disk.dat & |
...