fads: a (Go-based) FAst Detector Simulation toolkit
HSF, 2015/01/21
Sebastien Binet
CNRS/IN2P3
Sebastien Binet
CNRS/IN2P3
fads
is a "FAst Detector Simulation" toolkit.
R&D
in Go and concurrent frameworksHEP
event loop (initialize
| process-events
| finalize
)Code is on github (BSD-3):
Documentation is served by godoc.org, CI by drone.io:
godoc.org/github.com/go-hep/fwk
godoc.org/github.com/go-hep/fads
2As easy as:
$ export GOPATH=$HOME/dev/gocode $ export PATH=$GOPATH/bin:$PATH $ go get github.com/go-hep/fads/...
Yes, with the ellipsis at the end, to also install sub-packages.
go
get
will recursively download and install all the packages that go-hep/fads depends on. (no Makefile
needed)python
with the speed of execution of C++
fwk enables:
- event-level concurrency
- tasks-level concurrency
fwk relies on Go's runtime to properly schedule goroutines.
For sub-task concurrency, users are by construction required to use Go's constructs (goroutines and channels) so everything is consistent and the runtime has the complete picture.
4$ go get github.com/go-hep/fads/cmd/fads-app $ fads-app -help Usage: fads-app [options] <hepmc-input-file> ex: $ fads-app -l=INFO -evtmax=-1 ./testdata/hepmc.data options: -cpu-prof=false: enable CPU profiling -evtmax=-1: number of events to process -l="INFO": log level (DEBUG|INFO|WARN|ERROR) -nprocs=0: number of concurrent events to process
HepMC
converterCaveats:
JSON
, ASCII
and Gob
)C++-FastJet
)
A set of pure-Go or bindings to HEP
libraries
HepMC
in Go (EDM + I/O
)HEPEVT
bindingsHEP
particle data tableROOT
I/O
go-hep
record oriented I/O
LCIO
I/O
SUSY
Les Houches Accord I/O
FITSIO
I/O
for FITS
filesI/O
for VOTable
HDF5
Most of development workflow already addressed (doc, CI, DVCS)
HSF could provide (from go-hep POV):
C++
environmentSebastien Binet
CNRS/IN2P3