Difference between revisions of "SPO600 Framework Project"

From CDOT Wiki
Jump to: navigation, search
(API Specifications)
(API Specifications)
Line 28: Line 28:
 
Basically, ''' analys.txt ''' would look like this:
 
Basically, ''' analys.txt ''' would look like this:
  
<pck name>
+
<package name - file name of the archive>
  ID1 of group of options + options
+
#<permutation number, starting with 1>|<compiler options> // # symbol delimits a complete result set
  ID1 + build time, memory, CPU load, status code of build
+
<build exit code>|<build time in seconds>|<binary size in bytes> // from build step
  ID1 + status code of test
+
<test exit code> // from test step
  ID2 +options
+
$<benchmark run number, start with 1>|<benchmark speed performance score>|<benchmark memory score> // from benchmark step, both are integers >= 0, higher is better
  ID2 + build time, memory, CPU, status code of build
+
// repeat above line for each benchmark run
  etc
 
<pck name 2>
 
  ID1
 
  etc
 
 
 
  
  
 
Example:
 
Example:
  
<apache2.2.31>
+
apache2.2.31.tgz // package name
  ID1 -fbuiltin -falign-loops -fforward-propagade -fipa-cp
+
#1|-fbuiltin -falign-loops -fforward-propagade -fipa-cp // options
  30s , 125MB , 4% , 0
+
0|30|1024    // build
  0
+
0           // test
   ID2 -O2 -fnobuiltin -fnoalign-loops
+
$1|1334|4532   // benchmark run 1
  37s , 129MB , 7% , 0
+
$2|1543|54354  // benchmark run 2
  0
+
$3|4543|44
<apache2.4.16>
+
$4|1543|4565
  ID1 -fbuiltin -falign-loops -fforward-propagade -fipa-cp
+
#2|-O3          // permutation 2
  39s , 151MB , 5% , 0
+
0|20|2048      // etc.
  0
+
0
  ID2 -O2 -fnobuiltin -fnoalign-loops
+
$1|13434|45532
  43s , 172MB , 8% , 0
+
$2|56643|5436654
  0
+
$3|45433|4674
 
+
$4|154563|455465
<br>ID can be used just once - in this case it can be like a delimiter tat separates groups of options.
 
 
 
This is just a draft.
 
  
 
== GitHub Repository ==
 
== GitHub Repository ==

Revision as of 12:03, 23 October 2015

Who's Doing What

The driver for each piece is in bold. Please don't be confined by this list -- contribute to any section as you see fit.

  1. Config file format - Miguel, Andy, Shirwa
  2. Initial option lists for config file - James, Andy
  3. Config file parser - Gaurav, Miguel, Shirwa
  4. Permute test cases - Ramanan, Donald, Han
  5. Build - Yehoshua, Jayme, Nitish, Joel
  6. Test (Sanity Check/Successful Build Test) - Nitish, Dmytro, Ramanan
  7. Benchmark - Jayme, Yehoshua, Nitish
  8. Analysis tools/reporting - Kirill, Gaurav
  9. Code wrangler/git repo maintainer/QA - Joel, Jayme, James
  10. Inter-module API Coordination - Donald, Kirill, Dmytro
  11. Top-level bash script - Chris Tyler

API Specifications

             config file -> name of package write to file (analys.txt) for benchmark 
parse config -> one group per line, options delimited by "|" (STDOUT)
permute options -> one permutation per line (STDOUT) + ID of groups and group itself to analys.txt
build -> status code and location of start up script + build time, memory used, load of CPU (or it can be called in main) and status code to analys.txt
test -> status code + status code to analys.txt

analys.txt -> benchmark -> SQL Database


Basically, analys.txt would look like this:

<package name - file name of the archive>

  1. <permutation number, starting with 1>|<compiler options> // # symbol delimits a complete result set

<build exit code>|<build time in seconds>|<binary size in bytes> // from build step <test exit code> // from test step $<benchmark run number, start with 1>|<benchmark speed performance score>|<benchmark memory score> // from benchmark step, both are integers >= 0, higher is better // repeat above line for each benchmark run


Example:

apache2.2.31.tgz // package name

  1. 1|-fbuiltin -falign-loops -fforward-propagade -fipa-cp // options

0|30|1024 // build 0 // test $1|1334|4532 // benchmark run 1 $2|1543|54354 // benchmark run 2 $3|4543|44 $4|1543|4565

  1. 2|-O3 // permutation 2

0|20|2048 // etc. 0 $1|13434|45532 $2|56643|5436654 $3|45433|4674 $4|154563|455465

GitHub Repository

Here's the link to the Github repo: SPO600-Build-Framework

Config file name: ./monkeys10k.config

Instructions for Submitting a Pull Request

  1. Create a Github account.
  2. Navigate to the project repo by the link above.
  3. In the top right of the page make sure that you are "Watching" the repo: https://i.gyazo.com/f887e6199af0f73453556ca0e96dc2bb.png
  4. Click the Fork button.
  5. This should create a your own version of the repo.
  6. Clone the newly forked repo and begin adding your additions/changes.
  7. Once you have committed and pushed your changes to your own repo, submit a Pull Request, by clicking on the link on the right side of the repo page.
  8. Click New Pull Request.
  9. Click Create Pull Request, and add any comments about the pull request that you would like the Code Wranglers to know about (be descriptive about what is going on in your submission).
  10. The Code Wranglers will manage all pull requests and comment on any that might conflict with the main repo.

If you are still having trouble, GitHub's Using pull requests article might be helpful also.