best["vfraction"] = vfraction best["vversion"] = asapversion if isbetter[1]: best["lwhen"] = when best["lcpu"] = lcpu best["lwall"] = lwall best["lfraction"] = lfraction best["lversion"] = asapversion database[key] = best newfilename = dbfilename + ".new" bakfilename = dbfilename + ".bak" cPickle.dump(database, open(newfilename, "w"), 1) if founddb: os.rename(dbfilename, bakfilename) os.rename(newfilename, dbfilename) now=time.strftime("%Y/%m/%d %H:%M") version = asapversion.split()[2] compiler = asapversion.split("'")[1] logline = ( "%-20s %s tot=%-6.2f %6.2f %6.2f %-2.0f %6.2f %6.2f %-2.0f ver %s %s" % (fullhost[:20], now, vcpu+lcpu, vcpu, vwall, vfraction*100, lcpu, lwall, lfraction*100, version, compiler)) print "\nLog line:" print logline logfile = open(logfilename, "a") logfile.write(logline+"\n") logfile.close() report_timing()
from asap3 import * from asap3.Timing import report_timing from ase.lattice.cubic import FaceCenteredCubic import time nsteps = 10 start = time.time() if len(sys.argv) >= 2 and sys.argv[1] == '-t': AsapThreads() if len(sys.argv) >= 2 and sys.argv[1] == '-T': AsapThreads(6) atoms = FaceCenteredCubic(size=(100,100,50), symbol='Cu') atoms.set_calculator(EMT()) print "Number of atoms:", len(atoms) d = 0.1 pos = atoms.arrays['positions'] # Nasty! for i in range(nsteps): pos[50][0] += d d = -d f = atoms.get_forces() report_timing() print "Wall time elapsed:", time.time() - start