Exemple #1
0
def run():
    # Print a banner message
    print "Parboil parallel benchmark suite, version 0.2"
    print

    # Global variable setup
    if not globals.root:
        globals.root = os.getcwd()

    python_path = (os.path.join(globals.root, 'common', 'python') + ":" +
                   os.environ.get('PYTHONPATH', ""))

    bmks = parboilfile.Directory(os.path.join(globals.root, 'benchmarks'), [],
                                 benchmark.benchmark_scanner())

    globals.benchdir = bmks

    globals.datadir = parboilfile.Directory(
        os.path.join(globals.root, 'datasets'), [],
        benchmark.dataset_repo_scanner())

    globals.benchmarks = benchmark.find_benchmarks()

    globals.program_env = {
        'PARBOIL_ROOT': globals.root,
        'PYTHONPATH': python_path,
    }

    # Parse options
    act = options.parse_options(sys.argv)

    # Perform the specified action
    if act:
        return act()
    def create_dataset_dir(dpath):
        simple_scan = lambda x: pbf.scan_file(x)
        expected = [pbf.Directory(path.join(dpath,'input'), 
                              [_desc_file(path.join(dpath,'input'))], simple_scan),
                    pbf.Directory(path.join(dpath,'output'), [], simple_scan),
                    _desc_file(dpath)]

        return pbf.Directory(dpath, expected)
 def create_benchmark_dir(dpath):
     expected = [pbf.Directory(path.join(dpath,'src'), [], version_scanner()),
                 pbf.Directory(path.join(dpath,'tools'), 
                           [pbf.File(path.join(dpath,'compare-output'))]),
                 pbf.Directory(path.join(dpath,'build'), must_exist=False),
                 pbf.Directory(path.join(dpath,'run'), must_exist=False),
                 _desc_file(dpath)]
     return pbf.Directory(dpath, expected)
def version_scanner():
    """version_scanner() -> (path -> pbf.Directory) 
    
    Return a function to find benchmark versions in the src 
    directory for the benchmark."""

    return lambda x: pbf.scan_file(x, True, lambda y: pbf.Directory(y), ['.svn'])
Exemple #5
0
def dataset_repo_scanner():
    """dataset_repo_scanner -> (path -> pbf.Directory)

    Returns a function which will scan a filename and create a pbf.Directory 
    for a folder containing a dataset repository for parboil benchmarks."""

    benchmark_dsets_scanner = lambda x: pbf.Directory(x, [], dataset_scanner())

    return lambda x: pbf.scan_file(x, True, benchmark_dsets_scanner)
    def getTemporaryOutputDir(self, benchmark):
        """Get the pbf.Directory for the output of a benchmark run.
        This function should always return the same pbf.Directory if its parameters
        are the same.  The output path is not the path where the reference
        output is stored."""

        rundir = globals.benchdir.getChildByName(benchmark.name).getChildByName('run')

        if rundir.getChildByName(self.name) is None:
            datasetpath = path.join(rundir.getPath(), self.name)
            filepath = path.join(datasetpath, self.outFiles[0])
            rundir.addChild(pbf.Directory(datasetpath, [pbf.File(filepath, False)]))
        
        return rundir.getChildByName(self.name)