Skip to content

NCAR/KGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Youngsung Kim
Jul 10, 2016
904e959 · Jul 10, 2016
Jul 9, 2016
May 31, 2016
Jun 3, 2016
Jul 5, 2016
Jul 9, 2016
Jul 10, 2016
Mar 31, 2016
Dec 28, 2015
Jul 9, 2016

Repository files navigation

KGEN: Fortran Kernel Generator

A package for extracting a part of Fortran source codes out of a large Fortran application.

AUTHORS:Youngsung Kim and John Dennis
VERSION:0.7.1
COPYRIGHT:See the document entitled LICENSE.txt

Send questions and comments to KGEN Dev. Team (kgen@ucar.edu).

Changes from KGEN ver. 0.6.3

[ User Interface ]

  • Three mandatory arguments(clean, build and run of target application) are added in command line.
  • strace, rebuild, prerun options are added

[ Major Improvements ]

  • Macro definitions and include paths are automatically generated by KGen
  • tprof timing routines are added in generated kernels
  • Improved state file generation for intrinsic pointer variables

Overview

  • KGEN extracts an arbitrary region of Fortran source code as a stand-alone executable software
  • In addition, it generates input & output data for executing and verifying the generated kernel
  • All KGEN-generated kernels include correctness check and timing measurement

Dependencies

  • Python (>=2.7 and < 3.0)
  • C Pre-Processor(cpp)
  • Make build tool(make)
  • System call trace tool(strace)

Obtaining the Source Code

The latest KGEN can be obtained from the Git repository.

git clone https://github.com/NCAR/KGen.git

Building & Installation

Current KGEN does not require to build or to install.

Instructions & Use

  1. Download from KGen Github repository.

    >> git clone https://github.com/NCAR/KGen.git

  2. Read Kgen documentation in "doc" directory under the top Kgen directory.

    >> evince KGENUsersGuideVersion0.7.0.pdf

  3. Try a kernel generation example in "example/simple" directory

    >> cd example/simple; # move to an example directory

    >> vi src/Makefile; # Modify FC if required

    >> make; # extract a kernel

    >> cd kernel; # move to a kernel directory

    >> make; # build and run a kernel