Madagascar Installation Sergey Fomel University of Texas at Austin August 30, 2006 Vancouver, BC
Vancouver School & Workshop This Presentation Introductory remarks History Goals Design principles Installation and compilation Downloading Software construction with SCons File structure August 30, 2006 Vancouver School & Workshop
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) August 30, 2006 Vancouver School & Workshop
Cumulative Downloads Registered at freshmeat.net Vancouver School announced August 30, 2006 Vancouver School & Workshop
Vancouver School & Workshop August 30, 2006 Vancouver School & Workshop
Source Referral (August 2006) Vancouver School & Workshop
Vancouver School & Workshop Goal To make our research* productive To make technology transfer efficient *computational experiments August 30, 2006 Vancouver School & Workshop
One Week Technology Transfer Monday Get an idea Tuesday Implement it Wednesday Test it Thursday Communicate it Friday Commercialize it a b c August 30, 2006 Vancouver School & Workshop
Madagascar Design Principles Document computational experiments Old experiments are regression tests New experiments become unit tests Test Driven Development August 30, 2006 Vancouver School & Workshop
Vancouver School & Workshop This Presentation Introductory remarks History Goal Design principles Installation and compilation Downloading Compiling with SCons File structure August 30, 2006 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 with svn update Commit with svn commit (developers) Browse at http://svn.sourceforge.net/viewvc/rsf/ Subversion facilitates collaboration and version control August 30, 2006 Vancouver School & Workshop
Cumulative Subversion Access August 30, 2006 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. August 30, 2006 Vancouver School & Workshop
Vancouver School & Workshop From Tim O’Reilly’s blog “O’Reilly Radar” August 30, 2006 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 August 30, 2006 Vancouver School & Workshop
Vancouver School & Workshop Open Source created by scons install 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/ August 30, 2006 Vancouver School & Workshop
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++' August 30, 2006 Vancouver School & Workshop
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 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') August 30, 2006 Vancouver School & Workshop
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 add.c proc/ “processing” imag/ “imaging” user/ program sources arranged by author fomels/ slim/ … easily extensible August 30, 2006 Vancouver School & Workshop
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 contour.c test/ Vplot from source pens/ sources for Vplot manipulation main/ pspen.c Vplot to PostScript August 30, 2006 Vancouver School & Workshop
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 August 30, 2006 Vancouver School & Workshop