Skip to content
Scott Pakin edited this page Apr 2, 2015 · 42 revisions

Byfl documentation

Introductory material

Compiler wrapper scripts

These all contain pretty much the same information. Take your pick.

Output postprocessors

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:

Publications

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.
Clone this wiki locally