-
Notifications
You must be signed in to change notification settings - Fork 15
Home
These all contain pretty much the same information. Take your pick.
-
bf-clang
wraps the Clang C compiler. -
bf-clang++
wraps the Clang C++ compiler. -
bf-gcc
wraps the GNU C compiler. -
bf-g++
wraps the GNU C++ compiler. -
bf-gfortran
wraps the GNU Fortran compiler. -
bf-gccgo
wraps the GNU Go compiler.
bf-gcc
, bf-g++
, bf-gfortran
, and bf-gccgo
all require the DragonEgg plugin for GCC. At the time of this writing (April 2015), DragonEgg appears to be a dead project; it doesn't work with newer GCC versions or newer LLVM versions. Byfl doesn't install DragonEgg-based scripts unless it finds the DragonEgg plugin at configuration time so many of the scripts listed above will be absent from systems with newer GCC and LLVM installations.
Byfl programs generate a binary .byfl
file as output. The following programs convert .byfl
files to various other formats:
-
bfbin2xmlss
converts a.byfl
file to a formatted XML Spreadsheet spreadsheet that can be imported into LibreOffice Calc, Microsoft Excel 2003+, and Numbers for Mac. -
bfbin2csv
outputs a.byfl
file in comma-separated value format for ease of parsing -
bfbin2sqlite3
converts a.byfl
file to a SQLite 3 database. SQLite 3 databases are standalone files that can be used as is or imported into a heavyweight database management system. -
bfbin2hdf5
recodes a.byfl
file in HDF5 format, a format often used for scientific data.
All of the above are implemented using a callback-based API that Byfl provides. The API includes a single C function that parses a .byfl
file and calls user-defined functions for each table, column header, and data value it encounters. You can use the API to write your own .byfl
output postprocessors.
SWIG wrappers are installed if SWIG is available. These let you write .byfl
postprocessors in a variety of scripting languages. The SWIG version of the Byfl API is not based on callbacks because SWIG doesn't currently support callback functions. The following example shows how to process a .byfl
file from Python:
-
bfbin2py
installation instructions and Python script
Byfl is introduced in the following extended abstract:
- Scott Pakin and Patrick McCormick, "Hardware-independent application characterization". 2013 IEEE International Symposium on Workload Characterization (IISWC), Portland, Oregon, USA, 22-24 Sept. 2013, pp. 111–112. ISBN: 978-1-4799-0553-9, DOI: 10.1109/IISWC.2013.6704676.
A cache model built using the Byfl infrastructure is described in the following workshop paper:
- Eric Anger, Sudhakar Yalamanchili, Scott Pakin, and Patrick McCormick, "Architecture-Independent Modeling of Intra-Node Data Movement". 2014 LLVM Compiler Infrastructure in HPC (LLVM-HPC), New Orleans, Lousiana, USA, 17 Nov. 2014, pp. 29–39. ISBN: 978-1-4799-7023-0, DOI: 10.1109/LLVM-HPC.2014.6.
Byfl was used to analyze a plasma application in the following conference paper:
- Joshua Payne, Dana Knoll, Allen McPherson, William Taitano, Luis Chacón, Guangye Chen, and Scott Pakin. "Computational Co-design of a Multiscale Plasma Application: A Process and Initial Results". 28th International Parallel and Distributed Processing Symposium (IPDPS 2014), Phoenix, Arizona, USA, 19–23 May 2014, pp. 1093–1102. IEEE. ISSN: 1530-2075, DOI: 10.1109/IPDPS.2014.114.
Byfl was used to inform the power model used in the following conference paper:
- Marc Gamell, Ivan Rodero, Manish Parashar, Janine C. Bennett, Hemanth Kolla, Jacqueline Chen, Peer-Timo Bremer, Aaditya G. Landge, Attila Gyulassy, Patricak McCormick, Scott Pakin, Valerio Pascucci, and Scott Klasky. "Exploring Power Behaviors and Trade-offs of In-Situ Data Analytics". International Conference on High Performance Computing, Networking, Storage and Analysis (SC13), Denver, Colorado, USA, 17–22 Nov. 2013. ACM/IEEE. ISBN: 978-1-4503-2378-9, DOI: 10.1145/2503210.2503303.