examples/shallow/execute.py
def execute(option):
    '''A script that melody calls with each valid set of options. This
    script runs the required code and returns the results.'''

    namelist_option = []
    makefile_option = []
    flags = ""
    for entry in option:
        key = entry.keys()[0]
        if key == "Problem Size":
            namelist_option.append({"SIZE": entry[key]})
        elif key == "F90":
            makefile_option.append(entry)
        else:
            flags += entry[key] + " "
    makefile_option.append({"F90FLAGS": flags})

    namelist = create_input(namelist_option, "namelist",
                            template_location="templates")

    makefile_include = create_input(makefile_option, "Makefile.include",
                                    template_location="templates")

    benchmark_base = "shallow"

    # save the input files in the appropriate place
    location = benchmark_base + "/original/namelist"
    my_file = open(location, 'w')
    my_file.write(namelist)
    my_file.flush()

    location = benchmark_base + "/common/Makefile.include"
    my_file = open(location, 'w')
    my_file.write(makefile_include)
    my_file.flush()

    # compile shallow if required
    base_path = benchmark_base + "/original"
    import subprocess
    make_process = subprocess.Popen(["make", "clean"], cwd=base_path,
                                    stderr=subprocess.PIPE,
                                    stdout=subprocess.PIPE)
    if make_process.wait() != 0:
        return False, []

    make_process = subprocess.Popen(["make"], cwd=base_path,
                                    stderr=subprocess.PIPE,
                                    stdout=subprocess.PIPE)
    if make_process.wait() != 0:
        return False, []

    # run shallow
    make_process = subprocess.Popen(["./shallow_base"], cwd=base_path,
                                    stderr=subprocess.PIPE,
                                    stdout=subprocess.PIPE)
    if make_process.wait() != 0:
        return False, []
    # _ = make_process.stderr.read()
    stdout = make_process.stdout.read()

    # determine if the results are correct. We will need to look at
    # the results from stdout but for the moment we assume they are
    # correct

    # extract the required outputs
    for line in stdout.split("\n"):
        if "Time-stepping" in line:
            total_time = line.split()[2]

    return True, total_time
def execute(option):
    '''A script that melody calls with each valid set of options. This
    script runs the required code and returns the results.'''

    namelist_option = []
    makefile_option = []
    flags = ""
    for entry in option:
        key = entry.keys()[0]
        if key == "Problem Size":
            namelist_option.append({"SIZE": entry[key]})
        elif key == "F90":
            makefile_option.append(entry)
        else:
            flags += entry[key] + " "
    makefile_option.append({"F90FLAGS": flags})

    namelist = create_input(namelist_option, "namelist",
                            template_location="templates")

    makefile_include = create_input(makefile_option, "Makefile.include",
                                    template_location="templates")

    benchmark_base = "shallow"

    # save the input files in the appropriate place
    location = benchmark_base + "/original/namelist"
    my_file = open(location, 'w')
    my_file.write(namelist)
    my_file.flush()

    location = benchmark_base + "/common/Makefile.include"
    my_file = open(location, 'w')
    my_file.write(makefile_include)
    my_file.flush()

    # compile shallow if required
    base_path = benchmark_base + "/original"
    import subprocess
    make_process = subprocess.Popen(["make", "clean"], cwd=base_path,
                                    stderr=subprocess.PIPE,
                                    stdout=subprocess.PIPE)
    if make_process.wait() != 0:
        return False, []

    make_process = subprocess.Popen(["make"], cwd=base_path,
                                    stderr=subprocess.PIPE,
                                    stdout=subprocess.PIPE)
    if make_process.wait() != 0:
        return False, []

    # run shallow
    make_process = subprocess.Popen(["./shallow_base"], cwd=base_path,
                                    stderr=subprocess.PIPE,
                                    stdout=subprocess.PIPE)
    if make_process.wait() != 0:
        return False, []
    # _ = make_process.stderr.read()
    stdout = make_process.stdout.read()

    # determine if the results are correct. We will need to look at
    # the results from stdout but for the moment we assume they are
    # correct

    # extract the required outputs
    for line in stdout.split("\n"):
        if "Time-stepping" in line:
            total_time = line.split()[2]

    return True, total_time
def execute ( option ) : namelist_option = [ ] makefile_option = [ ] flags = "" for entry in option : key = entry . keys ( ) [ 0 ] if key == "Problem Size" : namelist_option . append ( { "SIZE" : entry [ key ] } ) elif key == "F90" : makefile_option . append ( entry ) else : flags += entry [ key ] + " " makefile_option . append ( { "F90FLAGS" : flags } ) namelist = create_input ( namelist_option , "namelist" , template_location = "templates" ) makefile_include = create_input ( makefile_option , "Makefile.include" , template_location = "templates" ) benchmark_base = "shallow" # save the input files in the appropriate place location = benchmark_base + "/original/namelist" my_file = open ( location , 'w' ) my_file . write ( namelist ) my_file . flush ( ) location = benchmark_base + "/common/Makefile.include" my_file = open ( location , 'w' ) my_file . write ( makefile_include ) my_file . flush ( ) # compile shallow if required base_path = benchmark_base + "/original" import subprocess make_process = subprocess . Popen ( [ "make" , "clean" ] , cwd = base_path , stderr = subprocess . PIPE , stdout = subprocess . PIPE ) if make_process . wait ( ) != 0 : return False , [ ] make_process = subprocess . Popen ( [ "make" ] , cwd = base_path , stderr = subprocess . PIPE , stdout = subprocess . PIPE ) if make_process . wait ( ) != 0 : return False , [ ] # run shallow make_process = subprocess . Popen ( [ "./shallow_base" ] , cwd = base_path , stderr = subprocess . PIPE , stdout = subprocess . PIPE ) if make_process . wait ( ) != 0 : return False , [ ] # _ = make_process.stderr.read() stdout = make_process . stdout . read ( ) # determine if the results are correct. We will need to look at # the results from stdout but for the moment we assume they are # correct # extract the required outputs for line in stdout . split ( "\n" ) : if "Time-stepping" in line : total_time = line . split ( ) [ 2 ] return True , total_time
A script that melody calls with each valid set of options. This
    script runs the required code and returns the results.
A script that melody calls with each valid set of options . This script runs the required code and returns the results .