210 likes | 365 Views
Madagascar Installation. Sergey Fomel University of Texas at Austin August 30, 2006 Vancouver, BC. This Presentation. Introductory remarks History Goals Design principles Installation and compilation Downloading Software construction with SCons File structure. Madagascar Story.
E N D
MadagascarInstallation Sergey Fomel University of Texas at Austin August 30, 2006 Vancouver, BC
This Presentation • Introductory remarks • History • Goals • Design principles • Installation and compilation • Downloading • Software construction with SCons • File structure Vancouver School & Workshop
Madagascar Story • Started in 2003 • Publicly open in June 2006 • Open-source http://rsf.sourceforge.net • Standing on SEPlib/SU shoulders • RSF (regularly sampled format) Vancouver School & Workshop
Cumulative Downloads Registered at freshmeat.net Vancouver School announced Vancouver School & Workshop
Source Referral (August 2006) Vancouver School & Workshop
Goal • To make our research* productive • To make technology transfer efficient *computational experiments Vancouver School & Workshop
One Week Technology Transfer a b c Vancouver School & Workshop
Madagascar Design Principles • Document computational experiments • Old experiments are regression tests • New experiments become unit tests Test Driven Development Vancouver School & Workshop
This Presentation • Introductory remarks • History • Goal • Design principles • Installation and compilation • Downloading • Compiling with SCons • File structure Vancouver School & Workshop
Downloading Madagascar • Stable version • madagascar-0.9.3 • SourceForge • Unstable (development) version • svn co https://svn.sourceforge.net/svnroot/rsf/trunk rsf • Update withsvn update • Commit withsvn commit(developers) • Browse at http://svn.sourceforge.net/viewvc/rsf/ • Subversion facilitates collaboration and version control Vancouver School & Workshop
Cumulative Subversion Access Vancouver School & Workshop
SCons (Software Construction) • “make” replacement • Built-in “autoconf/automake” functionality • Written in • Open-source http://www.scons.org • Used for compiling Madagascar • Used for managing processing flows SCons is an easier, more reliable and faster way to build software. Vancouver School & Workshop
From Tim O’Reilly’s blog “O’Reilly Radar” Vancouver School & Workshop
Installing from Source • Unpack • tar xvzf madagascar-0.9.3.tgz • Prerequisites • Install Python and SCons if necessary • Set environmental variables • Build • scons config (generates config.py) • scons install • http://rsf.sf.net/wiki/index.php/Installation $RSFROOT root of installation $PYTHONPATH add $RSFROOT/lib $DATAPATH home for binary files Vancouver School & Workshop
madagascar-0.9.3/ Sconstruct config.py api/ book/ filt/ user/ pens/ plot/ python/ convenience Python scripts scons/ SCons sources $RSFROOT/ bin/ lib/ include/ doc/ figs/ Open Source created by scons install Vancouver School & Workshop
Look Inside I • madagascar-0.9.3/ • Sconstruct top software construction • config.py created by scons config ENV = {'PATH': '/usr/local/bin:/bin:/usr/bin'} AR = 'ar' JPEG = 'jpeg' PPM = None CC = 'gcc' CCFLAGS = '-O2 -std=gnu99 -Wall -pedantic -DNO_COMPLEX' CPPPATH = [] LIBPATH = [] LIBS = ['m', 'rpc'] XLIBPATH = ['/usr/X11R6/lib'] XLIBS = ['Xaw', 'Xt', 'X11'] XINC = ['/usr/X11R6/include'] CXX = 'g++' Vancouver School & Workshop
Look Inside II • api/ API tests C++/Fortran/MATLAB… • book/ reproducible research tests • gee/ book • ajt/ chapter/paper • SConstruct • paper.tex (LaTeX) • causint/ project • SConstruct • conv/ • … • hlx/ • … • bei/ • geo391/ • … from rsfproj import * Flow('data1',None,'spike n1=30 k1=15 label1=') Flow('data2','data1','causint') Flow('data3','data1','causint adj=y') Flow('data4',None, 'spike n1=30 nsp=2 k1=10,15 mag=1,-1 label1= ') Flow('data5','data4','causint') Flow('data6','data4','causint adj=y') Flow('data7','data5','causint') Vancouver School & Workshop
Look Inside III • filt/ program sources arranged by subject • lib/ sources for rsf.h, librsf.a and API bindings • SConstruct • alloc.c • … • main/ most common data manipulation programs • SConstruct • add.c • … • proc/ “processing” • imag/ “imaging” • user/ program sources arranged by author • fomels/ • slim/ • … easily extensible Vancouver School & Workshop
Look Inside IV • plot/ sources for Vplot generation • lib/ sources for rsfplot.h, librsfplot.a • SConstruct • axis.c • … • main/ RSF to Vplot • SConstruct • contour.c • … • test/ Vplot from source • pens/ sources for Vplot manipulation • main/ • SConstruct • pspen.c Vplot to PostScript • … • … Vancouver School & Workshop
Lessons • Madagascar goal • To make our research productive • To make technology transfer efficient • Multiple levels • (Tuesday) implement – main modules, C • (Wednesday) test – projects, SCons/Python • (Thursday) communicate – papers, LaTeX • If you don’t like it, please voice your concerns. Wiki | Blog | Mailing list | Forums | Bug tracking | Feature requests Vancouver School & Workshop