This archive contains two subdirectories: 1) Programs =========== It contains the program to generate DNF trees, TreeGenerator, and the program to evaluate the schedules of such trees, DNFScheduling The syntax of TreeGenerator is the following, where expressions in upper cases are just there to make things human readable and the expressions in lower cases are variable that should be replaced by values. TreeGenerator tree_type NBANDS number_of_ands NBLEAVES number_of_leaves RATIO average_stream_reuse BASESEED first_seed NBSEED number_of_instances_to_generate HEUR type_of_heuristics LOCAL locality Comments: --------- - tree_type should be either equal to FIXE or to VAR. FIXE means that all ANDs have the exact same number of leaves; VAR means that the umber of leaves of AND is randomly and uniformly picked between 1 and NBLEAVES. - average_stream_reuse may be a rational. The exact definition is: the number of streams used is equal to ceil(number_of_ands x max_number_of_leaves / average_stream_reuse); - type_of_heuristics: 0: optimal and all the studied heuristics 1: all the studied heuristics (but not the optimal) 3: case of a single AND (only the two greedy algorithms for a single AND are considered, the one optimal without reuse and the one optimal with reuse) - locality: 0: batch submission 1: run on the local computer 2) SimulationResults ==================== This directory contains three subdirectories, one corresponding to each of the three figures in the research report: Results-Single-AND: contains the simulations for trees reduced to a single AND Results-Small-DNF-trees: contains the simulations for "small" trees for which we were able to compute the optimal solution Results-Large-DNF-trees: contains the simulations for "small" trees for which we were NOT able to compute the optimal solution The names of the result files contain: a) the type of the trees VAR or FIXE(see tree_type above) b) three values: 1) the number of ANDs; 2) the maximum number of leaves per AND; 3) the reuse. The content of each file is organized as follows: - A line beginning by "# ARGUMENTS " which contains the list of arguments given as input to the program DNFScheduling - One line per heuristic containing - the random seed corresponding to the instance - the code of the heuristic - the expected cost for the schedule produced by that heuristic The codes of the heuristics are the following: - 0: optimal - 20: AND-ordering, increasing, C/p, dynamic - 21: AND-ordering, increasing, C, dynamic - 30: AND-ordering, increasing, C/p, static - 31: AND-ordering, increasing, C, static - 32: AND-ordering, increasing, p, static - 33: AND-ordering, increasing, q, static - 40: Leaf-ordering, increasing, C/q - 41: Leaf-ordering, increasing, C/p - 42: Leaf-ordering, increasing, C - 43: Leaf-ordering, decreasing, p - 44: Leaf-ordering, decreasing, q - 45: Leaf-ordering, random - 46: Stream-ordering, naive implementation of algorithm as described in the original paper - 47: Stream-ordering, optimized version (version whose performance is reported)