Changeset 3415 in Sophya


Ignore:
Timestamp:
Dec 6, 2007, 3:37:24 PM (18 years ago)
Author:
ansari
Message:

une partie de la maj doc overview pour sophya V2.1 , Reza 06/12/2007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/Manual/sophya.tex

    r3180 r3415  
    4949\vspace{1cm}
    5050\begin{center}
    51 {\bf \Large Sophya Version: 2.0 (V\_Sep2006) }
     51{\bf \Large Sophya Version: 2.1 (V\_Sep2007) }
    5252\end{center}
    5353\titrebp{1}
     
    168168SOPHYA library.
    169169\begin{itemize}
    170 \item[] {\bf Tests/} Simple test programs
     170\item[] {\bf Tests/} Simple test programs. Many of these test programs can be also used
     171as examples for using SOPHYA.
    171172\item[] {\bf PrgUtil/} Various utility programs (runcxx, scanppf, scanfits, \ldots)
    172173\item[] {\bf PrgMap/} Programs performing operations on skymaps: projections,
    173174power spectrum in harmonic space, \ldots
    174 \item[] {\bf PMixer/} skymixer and related programs
    175175\end{itemize}
    176176
     
    204204interactive analysis tools.
    205205\end{itemize}   
     206
     207The following modules contains additional programs or libraries, based on SOPHYA :
     208\begin{itemize}
     209\item[] {\bf AnaLC} contains program files extracted from the EROS/PEIDA software
     210and adapted to be compiled with SOPHYA. It can be used in particular to read and analyse
     211EROS light curve data files.
     212\item[] {\bf LUC} {\bf L}ittle {\bf U}niverse {\bf C}alculator is a module containing classes to
     213perform basic computation related to the universe geometry (FRW metric).
     214\item[] {\bf PMixer/} skymixer and related programs
     215\end{itemize}
     216
    206217\newpage
    207218
     
    344355\end{verbatim}
    345356
     357\subsection{the spiapp program}
     358\index{spiapp} \label{spiapp}
     359{\bf spiapp} is an interactive data analysis program, built on top of the SOPHYA
     360library, , the PI GUI library. The interactive data analysis framework is defined
     361by the classes in the {\bf PIext} module. spiapp has a c-shell like
     362command interpreter and can be used to manipulate SOPHYA and display
     363objects. Refer to the piapp user manual for more information.
     364\begin{verbatim}
     365csh> spiapp -h
     366 SophyaInitiator::SophyaInitiator() BaseTools Init
     367 PIOPersist::Initialize() Starting Sophya Persistence management service
     368SOPHYA Version  2.1 Revision 0 (V_Nov2007) -- Nov 24 2007 13:08:58 gcc 3.3 20030304 (Apple Computer, Inc. build 1495)
     369
     370 piapp: Interactive data analysis and visualisation program
     371 Usage: piapp [-nored] [-doublered] [-termread] [-term]
     372              [-hidezswin] [-small] [-nosig] [-nosigfpe] [-nosigsegv]
     373              [-tmpdir TmpDirectory] [-help2tex] [-exec file [args]]
     374  -nored : Don't redirect stdout/stderr to piapp console
     375  -doublered : Redirect stdout/stderr to piapp console AND the terminal
     376  -termread : Read commands on terminal (stdin)
     377  -term : equivalent to -nored -termread -small
     378  -hidezswin : Hide Zoom/Stat/ColMap window
     379  -small : Create small size main piapp window
     380  -nosig : Don't catch SigFPE, SigSEGV
     381  -nosigfpe -nosigsegv: Don t catch SigFPE / SigSEGV
     382  -tmpdir TmpDirectory: defines TMDIR for temporary files
     383  -help2tex: Create a LaTeX help file (piahelp.tex)
     384  -exec file [args] : Execute command file (last option)
     385
     386\end{verbatim}
    346387\newpage
    347388
     
    396437which shares the data, while the assignment operator copies or
    397438duplicate the data.
     439
     440\section{Multi-thread programming with SOPHYA}
     441Multi-thread programming is usually safe as long as different threads DO NOT access
     442the same memory locations. SOPHYA is mainly organized as classes having only
     443data members, with very few cases having static data members (memory locations
     444common to all instances of a class), or seldom, global variables. \\
     445Using different instances of a class in different threads is thus safe for most
     446classes / methods in SOPHYA. \\
     447A major exception is the reference sharing mechanism, where different instances
     448of a class may  shared memory locations. This reference sharing mechanism has been
     449made thread-safe in SOPHYA, from version V=2.1. \\
     450As a consequence, different execution threads can access non overlapping sub-arrays
     451and access (read/write) the corresponding elements without the need of
     452mutex and thread synchonisation. Moreover, thread safe filling of
     453NTuple and DataTable objects can be activated, on an object per object basis. \\
     454The {\tt ZThread, ZMutex \ldots} classes in the {\bf SysTools } module offer a relatively
     455easy way of writing multi-threaded programs.   
    398456
    399457\newpage
     
    598656\end{figure}
    599657\begin{itemize}
    600 \item[] \tcls{SegDataBlock}  handles arrays of object of
     658\item[\rond] \tcls{SegDataBlock}  handles arrays of object of
    601659type {\bf T} with reference sharing in memory. The array can be extended
    602660(increase in array size) with fixed segment size. It implements the interface
    603661defined by \tcls{SegDBInterface}.
    604 \item[] \tcls{SwSegDataBlock} Implements the same \tcls{SegDBInterface}
     662\item[\rond] \tcls{SwSegDataBlock} Implements the same \tcls{SegDBInterface}
    605663using a data swapper object. Data swappers implement the interface defined in
    606664(\tcls{DataSwapperInterface} class.  \tcls{SwSegDataBlock} can
     
    808866\item {\bf Range(idx)} represents a single index ({\bf = idx})
    809867\item {\bf Range(first, last)} represents the range of indices
    810 {\bf first} $\leq$ index $\leq$ {\bf last}.
     868{\bf first} $\leq$ index $\leq$ {\bf last}.\\
    811869The static method {\tt Range::lastIndex()} can be used
    812870to specify the last valid index.
     
    10401098\end{verbatim}
    10411099
     1100\subsection{Cast without conversion}
    10421101
    10431102\subsection{Memory organisation}
     
    20112070OS & compiler \\
    20122071\hline
    2013 Linux           &     g++  (3.x \, 4.0)  \\
    2014 Linux  (SCL)          &     icc - Intel compiler (9.0)   \\
     2072Linux (32 bits)          &     g++  (3.x \, 4.0)  \\
     2073Linux  (SCL, 32)          &     icc - Intel compiler (9.0)   \\
     2074Linux  (SCL, 64)          &     g++  3.3 \, 3.4  \\
    20152075MacOSX/Darwin (PowerPC) 10.3 \, 10.4  &         g++ (3.3  \, 4.0)\\
    20162076MacOSX/Darwin (Intel) 10.4  &         g++ (4.0)\\
    20172077HP/Compaq/DEC Tru64 ( OSF1)  &     cxx  (6.1  6.3)  \\
    20182078SGI IRIX64       &     CC   (7.3)   \\
    2019 IBM AIX       &     xlC   (7.x)   \\
     2079IBM AIX (5.3)      &     xlC   (8.0)   \\
    20202080\hline
    20212081\end{tabular}
     
    20692129csh> ./configure -h
    20702130configure [-sbase SOPHYABASE] [-scxx SOPHYACXX] [-incln]
    2071   [-minc mymake.inc]
    2072   [-extp dir1 -extp dir2 ...] [-extip dir1 -extip dir2 ... ]
    2073   [-extlp dir1 -extlp dir2 ... ]
    2074   [-noextlib -noext fits -noext fftw -noext lapack ]
    2075   [-noext astro]
    2076   [-usefftw2 -uselapack2] [-singleslb]
     2131  [-minc mymake.inc]  [-compopt 'cc/cxxOptions']
     2132  [-arch64] [-sasz64] [-nofpic] [-nothsafe] [-boundcheck] [-sodebug]
     2133  [-extp dir1 -extp dir2 ...] [-extip dir1 -extip dir2 ... ] [-extlp dir1 -extlp dir2 ... ]
     2134  [-noextlib] [-noext fits] [-noext fftw] [-noext lapack] [-noext astro]
     2135  [-noPI] [-slballinone]
     2136  [-alsofftwfloat] [-usefftw2] [-uselapack2]
     2137  (See SOPHYA manual/web pages for a detailed description of configure options)
    20772138\end{verbatim}
    20782139\begin{itemize}
     
    20832144\item[] -incln : creates symbolic link for include files, instead of copying them.
    20842145\item[] -minc : give an explicit name for the file used to generate
    2085 \$SOPHYABASE/include/sophyamake.inc.
     2146\$SOPHYABASE/include/sophyamake.inc. If {\tt -minc} is not specified, one of
     2147the files in BuildMgr/ directory is selected, based on the system name and the
     2148compiler {\tt  Linux\_g++\_make.inc , OSF1\_cxx\_make.inc , AIX\_xlC\_make.inc \ldots}
    20862149\item[] -extp : Adds the specied path to the search path of the external libraries
    20872150include files and archive library.
     
    20922155\item[] -noextlib : Disable compiling of modules referencing external libraries.
    20932156\item[] -noext : Disable compiling of the specified module (with reference to external
    2094 library.
    2095 \item[] -usefftw2: FFTW V2 is being used (default FFTW V3) - A compilation flag
    2096 will be defined in sspvflags.h
    2097 \item[] -uselapack2: Lapack V2 is being used (defaulr V3) - A compilation flag
    2098 will be defined in sspvflags.h
    2099 \item[] -singleslb: A single shared library for all SOPHYA, PI and external library interface
     2157library : {\tt -noext fits , -noext fftw \ldots }
     2158\item[] -usefftw2: Use FFTW V2 instead of the default FFTW V3 - A preprocessor
     2159flag will be defined in sspvflags.h
     2160\item[] -uselapack2: Lapack V2 is being used (defaulr V3) - A preprocessor
     2161flag will be defined in sspvflags.h
     2162\item[] -alsofftwfloat : compile single precision (float) version  of the Fourier
     2163transform methods (module IFFTW, class FFTWServer). A preprocessor
     2164flag will be defined in sspvflags.h and float version of the FFTW library
     2165(libfftw3f.a) will be linked with SOPHYA, in addition to the default double
     2166precision library (libfftw3.a).
     2167\item[] -noPI : has currently no effect
     2168\item[] -slballinone: A single shared library for all SOPHYA, PI and external library interface
    21002169modules will be build. A compilation flag
    2101 will be defined in sspvflags.h . `See also target {\tt slballinone} below.
     2170will be defined in sspvflags.h . \\ See also target {\tt slballinone} below.
    21022171\end{itemize}
     2172
     2173{\large \bf configure steps } \\[1mm]
     2174The configure script performs the following actions :
     2175\begin{enumerate}
     2176\item Creating directory tree under {\tt \$SOPHYABASE }
     2177\item Cpoying include files (or creating symbolic) in {\tt \$SOPHYABASE/include/ }
     2178\item Search for external libraries include files and create the necessary links
     2179in {\tt \$SOPHYABASE/include}
     2180\item Search for external libraries (-lfits \ldots) and add the corresponding
     2181directories to the library search path, in {\tt sophyamake.inc}
     2182\item Creates the file { \tt \$SOPHYABASE/include/sophyamake.inc }
     2183\item Creates the file {\tt  machdefs.h} from { BaseTools/machdefs\_mkmf.h } and
     2184{\tt sspvflags.h }
     2185\item Creates the object list files for shared library creation
     2186\end{enumerate}
     2187
     2188{\large \bf Example } \\[1mm]
    21032189
    21042190In the example below, we assume that we want to install Sophya from a
Note: See TracChangeset for help on using the changeset viewer.