Skip to content

Commit

Permalink
Python 3 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
sstaehler committed Jul 16, 2016
1 parent 7283b42 commit 072a3ec
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 42 deletions.
6 changes: 3 additions & 3 deletions UTILS/create_composite_plots.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@
# Get list of all seismogram plot files
smgr_list = glob.glob(os.path.join(seis_plot_dir, '*.png'))

print 'Found %d seismogram images in %s' % (len(smgr_list), seis_plot_dir)
print('Found %d seismogram images in %s' % (len(smgr_list), seis_plot_dir))

for filename_smgr in smgr_list:
kernel = os.path.split(filename_smgr)[1]
# Just assume that there is a plot file for each kernel
filename_kernel = os.path.join(kernel_plot_dir, 'K_x_%s' % kernel)

filename_comp = os.path.join(comp_plot_dir, 'Composite_%s' % kernel)
print 'Processing Kernel: %s...' % kernel
print('Processing Kernel: %s...' % kernel)

# Load kernel plot and seismogram plot
im_kernel = Image(filename=filename_kernel)
Expand All @@ -40,4 +40,4 @@
im_kernel.composite(im_smgr, left=1100, top=580)

im_kernel.save(filename=filename_comp)
print ' ...done!'
print(' ...done!')
6 changes: 3 additions & 3 deletions UTILS/plot_all_kernels.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
for data in kerner_kernelxdmf.PointData:
if data.Name[0:3] == 'K_x':

# Set color range to 10% of maximum value
# Set color range to 10% of maximum value
maxval = np.max(-data.GetRange()[0], data.GetRange()[1]) * 0.1
maxval = round(maxval, int(-np.log10(maxval))+1)

Expand Down Expand Up @@ -110,8 +110,8 @@
for data in kerner_kernelxdmf.CellData:
if data.Name[0:3] == 'K_x':

# Set color range to 10% of maximum value
maxval = np.max(-data.GetRange()[0], data.GetRange()[1]) * 0.1
# Set color range to 10% of maximum value
maxval = np.max(-data.GetRange()[0], data.GetRange()[1]) * 0.01
maxval = round(maxval, int(-np.log10(maxval))+1)

LUT.RGBPoints = [-maxval, 0.231373, 0.298039, 0.752941,
Expand Down
2 changes: 1 addition & 1 deletion UTILS/plot_all_seismograms.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
if kernel[0:3] in ('cut', 'raw'):
continue

print kernel
print(kernel)

smgr_name = os.path.join(seis_dir, 'seism_%s' % kernel)
cut_name = os.path.join(seis_dir, 'seism_cut_%s' % kernel)
Expand Down
14 changes: 7 additions & 7 deletions UTILS/repack_database.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,42 +98,42 @@ def unroll_and_merge_netcdf4(filenames, output_folder):

f_out.setncattr('nsim', len(filenames))

for name, dimension in f_in_1.dimensions.iteritems():
for name, dimension in f_in_1.dimensions.items():
if not dimension.isunlimited():
f_out.createDimension(name, len(dimension))
else:
f_out.createDimension(name, None)

# Create Mesh group and copy mesh variables
f_out.createGroup('Mesh')
for name, dimension in f_in_1['Mesh'].dimensions.iteritems():
for name, dimension in f_in_1['Mesh'].dimensions.items():
if not dimension.isunlimited():
f_out['Mesh'].createDimension(name, len(dimension))
else:
f_out['Mesh'].createDimension(name, None)

for name, variable in f_in_1['Mesh'].variables.iteritems():
for name, variable in f_in_1['Mesh'].variables.items():
f_out['Mesh'].createVariable(name, variable.datatype,
variable.dimensions)

if ('elements',) == variable.dimensions:
print 'Resorting %s' % name
print('Resorting %s' % name)
f_out['Mesh'].variables[name][:] = \
f_in_1['Mesh'].variables[name][inds]
elif name == 'sem_mesh':
print 'Resorting first dim of %s' % name
print('Resorting first dim of %s' % name)
f_out['Mesh'].variables[name][:, :, :] = \
f_in_1['Mesh'].variables[name][inds, :, :]
elif name == 'fem_mesh':
print 'Resorting first dim of %s' % name
print('Resorting first dim of %s' % name)
f_out['Mesh'].variables[name][:, :] = \
f_in_1['Mesh'].variables[name][inds, :]
else:
f_out['Mesh'].variables[name][:] = \
f_in_1['Mesh'].variables[name][:]

# Copy source time function variables from Surface group
for name, variable in f_in_1['Surface'].variables.iteritems():
for name, variable in f_in_1['Surface'].variables.items():
if name in ['stf_dump', 'stf_d_dump']:
f_out.createVariable(name, variable.datatype,
variable.dimensions)
Expand Down
56 changes: 28 additions & 28 deletions submit.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def estimate_memory():
# Estimate memory usage which cannot be controlled by input parameters

memory_mesh = 4 * (2*npoints_fwd + 8*nelems_fwd + 25*nelems_fwd) * 2
#print 'Mesh size in memory: %f MB' % (memory_mesh/(2**20))
# print 'Mesh size in memory: %f MB' % (memory_mesh/(2**20))

nomega = nextpow2(ndumps_fwd)
if full_strain:
Expand All @@ -39,11 +39,11 @@ def estimate_memory():

memory_fft = (8 * (nomega + ndumps_fwd) * ndim *
float(params['ELEMENTS_PER_TASK']))
#print 'Memory for FFT types: %f MB' % (memory_fft/(2**20))
# print 'Memory for FFT types: %f MB' % (memory_fft/(2**20))

memory_fields = (8 * float(params['ELEMENTS_PER_TASK']) * ndim *
(5*nomega + 2*ndumps_fwd))
#print 'Memory for Wavefields: %f MB' % (memory_fields/(2**20))
# print 'Memory for Wavefields: %f MB' % (memory_fields/(2**20))

'''
The following memory requirements were determined using the Massif heap
Expand All @@ -53,11 +53,11 @@ def estimate_memory():
around 120 MB.
'''
memory_hdf5 = 150 * 2**20
#print 'Memory for HDF5/NetCDF4 library: %f MB' % (memory_hdf5/(2**20))
# print 'Memory for HDF5/NetCDF4 library: %f MB' % (memory_hdf5/(2**20))

# Memory usage of KD-Trees is roughly 80 Byte per mesh point
memory_kdtree = 80 * npoints_fwd
#print 'Memory for KD-Trees: %f MB' % (memory_kdtree/(2**20))
# print 'Memory for KD-Trees: %f MB' % (memory_kdtree/(2**20))

memory_total = (memory_mesh + memory_fft + memory_hdf5 +
memory_kdtree + memory_fields)
Expand All @@ -73,17 +73,17 @@ def auto_buffer_size(memory_available):
memory_for_buffers = (memory_available - estimate_memory())*0.9

if merged_db:
size_one_strain_element = (8.0 * # 8 Byte per number
25 * # Number of GLL points per elem
size_one_strain_element = (8.0 * # 8 Byte per number
25 * # Number of GLL pts per elem
ndumps_fwd * # number of time samples
ndim * # number of strain dimensions
6) # 6 files (4 fwd, 2 bwd)
size_one_disp_element = (4.0 * # 4 Byte per number
25 * # Number of GLL points per elem
ndumps_fwd * # number of time samples
ndim * # number of strain dimensions
6) # 6 files (4 fwd, 2 bwd)
size_one_disp_element = (4.0 * # 4 Byte per number
25 * # Number of GLL points per elem
ndumps_fwd * # number of time samples
15) # 15 disp. dimensions
# 3 each for the 3 dipole/quadpole
# 2 each 3 for the monopole
15) # 15 disp. dimensions
# 3 each for the 3 dipole/quadp
# 2 each for the 3 monopole

else:
size_one_strain_element = (4.0 * # 8 Byte per number
Expand All @@ -102,10 +102,10 @@ def auto_buffer_size(memory_available):
size_disp_buffer = int(memory_for_buffers * 0.4 /
size_one_disp_element)

memory_buffers_strain = size_one_strain_element * size_strain_buffer
#print 'Strain buffer size: %f MB' % (memory_buffers_strain/(2**20))
memory_buffers_disp = size_one_disp_element * size_disp_buffer
#print 'Displ. buffer size: %f MB' % (memory_buffers_disp/(2**20))
# memory_buffers_strain = size_one_strain_element * size_strain_buffer
# print 'Strain buffer size: %f MB' % (memory_buffers_strain/(2**20))
# memory_buffers_disp = size_one_disp_element * size_disp_buffer
# print 'Displ. buffer size: %f MB' % (memory_buffers_disp/(2**20))

if memory_for_buffers < 0:
raise ValueError('Not enough memory for buffers')
Expand All @@ -120,7 +120,7 @@ def read_receiver_dat(rec_file):
# Read number of receivers
str_line = f.readline()
nrec = int(str_line.split()[0])
print 'Number of receivers: %d' % nrec
print('Number of receivers: %d' % nrec)
# Read seismogram component
str_line = f.readline()
# seis_cmp = str_line.split()[0]
Expand Down Expand Up @@ -159,7 +159,7 @@ def read_receiver_dat(rec_file):

nkernel_total += nkernel

print 'Number of kernels: %d' % nkernel_total
print('Number of kernels: %d' % nkernel_total)

return nkernel_total, nrec, fullstrain_kernel

Expand Down Expand Up @@ -528,7 +528,7 @@ def define_arguments():
# Merge input variables from input_file, arguments and default values
params = {}
# Loop over all possible arguments
for key, value in vars(args).iteritems():
for key, value in vars(args).items():
if key not in ('nslaves', 'job_name', 'queue', 'available_memory'):
# If an input file is selected, get values from there by default
if args.input_file:
Expand Down Expand Up @@ -638,7 +638,7 @@ def define_arguments():


# Copy necessary files to rundir
for key, value in params.iteritems():
for key, value in params.items():

if key == 'SRC_FILE':
src_file_name = os.path.split(value)[1]
Expand Down Expand Up @@ -723,7 +723,7 @@ def define_arguments():
# Create input file for run
out_input_file = os.path.join(run_dir, 'inparam')
with open(out_input_file, 'w') as f_out:
for key, value in params_out.iteritems():
for key, value in params_out.items():
if value.find('/') == -1:
f_out.write('%s %s\n' % (key, value))
else:
Expand Down Expand Up @@ -752,8 +752,8 @@ def define_arguments():

run_cmd = 'nohup %s -n %d ./mc_kernel inparam 2>&1 > OUTPUT_0000 &' % \
(mpirun_cmd, args.nslaves + 1)
print 'Starting local job in %s' % run_dir
print 'Check %s/OUTPUT_0000 for progress' % run_dir
print('Starting local job in %s' % run_dir)
print('Check %s/OUTPUT_0000 for progress' % run_dir)
subprocess.call(run_cmd, shell=True)

elif args.queue == 'SuperMUC':
Expand Down Expand Up @@ -817,7 +817,7 @@ def define_arguments():
text_out += "module load mkl \n"
text_out += "poe ./mc_kernel inparam 2>&1 > OUTPUT_0000\n"
f.write(text_out)
print 'Submitting to SuperMUC loadleveler queue'
print('Submitting to SuperMUC loadleveler queue')
subprocess.call(['llsubmit', job_script])

elif args.queue == 'monch':
Expand All @@ -842,5 +842,5 @@ def define_arguments():
f.write(text_out)
os.chdir(run_dir)
run_cmd = 'sbatch sbatch.sh'
print run_cmd
print(run_cmd)
subprocess.call(run_cmd, shell=True)

0 comments on commit 072a3ec

Please sign in to comment.