if build or analyse: # Generate memory layouts if args.equations == 'viscoelastic': memoryLayouts = MemoryLayout.getViscoelasticMemoryLayouts( args.order, args.numberOfMechanisms, args.arch) elif args.equations == 'viscoelastic2': memoryLayouts = MemoryLayout.getViscoelastic2MemoryLayouts( args.order, args.arch) if build: MemoryLayout.generateTuningLayoutFiles(memoryLayouts) # Build versions, run tests and proxy options = { 'equations': args.equations, 'order': args.order, 'numberOfMechanisms': args.numberOfMechanisms, 'libxsmmGenerator': args.libxsmmGenerator, 'arch': args.arch, 'compileMode': 'release', '--jobs': args.ncompileJobs } Proxy.buildOrRun(options, args.nelem, args.ntimesteps, build=build, run=run) if analyse: # Analysis matrices = Analysis.analyse() # Generate best memory layout MemoryLayout.generateLayoutFile(matrices, memoryLayouts)
if build or analyse: # Generate memory layouts if args.equations == 'elastic': memoryLayouts = MemoryLayout.getElasticMemoryLayouts(args.order, args.arch) if args.equations == 'viscoelastic': memoryLayouts = MemoryLayout.getViscoelasticMemoryLayouts(args.order, args.numberOfMechanisms, args.arch) elif args.equations == 'viscoelastic2': memoryLayouts = MemoryLayout.getViscoelastic2MemoryLayouts(args.order, args.arch) if build: MemoryLayout.generateTuningLayoutFiles(memoryLayouts) # Build versions, run tests and proxy options = { 'equations': args.equations, 'order': args.order, 'numberOfMechanisms': args.numberOfMechanisms, 'arch': args.arch, 'compileMode': 'release', '--jobs': args.ncompileJobs } Proxy.buildOrRun(options, args.nelem, args.ntimesteps, build=build, test=test, run=run, host=args.host) if analyse: # Analysis matrices = Analysis.analyse() # Generate best memory layout MemoryLayout.generateLayoutFile(matrices, memoryLayouts)
tryMkdir(Proxy.OutputDir) if build or analyse: # Generate memory layouts if args.equations == 'viscoelastic': memoryLayouts = MemoryLayout.getViscoelasticMemoryLayouts(args.order, args.numberOfMechanisms, args.arch) elif args.equations == 'viscoelastic2': memoryLayouts = MemoryLayout.getViscoelastic2MemoryLayouts(args.order, args.arch) if build: MemoryLayout.generateTuningLayoutFiles(memoryLayouts) # Build versions, run tests and proxy options = { 'equations': args.equations, 'order': args.order, 'numberOfMechanisms': args.numberOfMechanisms, 'libxsmmGenerator': args.libxsmmGenerator, 'arch': args.arch, 'compileMode': 'release', '--jobs': args.ncompileJobs } Proxy.buildOrRun(options, args.nelem, args.ntimesteps, build=build, run=run) if analyse: # Analysis matrices = Analysis.analyse() # Generate best memory layout MemoryLayout.generateLayoutFile(matrices, memoryLayouts)