Changeset 3415 in Sophya for trunk/SophyaLib/Manual/sophya.tex
- Timestamp:
- Dec 6, 2007, 3:37:24 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/Manual/sophya.tex
r3180 r3415 49 49 \vspace{1cm} 50 50 \begin{center} 51 {\bf \Large Sophya Version: 2. 0 (V\_Sep2006) }51 {\bf \Large Sophya Version: 2.1 (V\_Sep2007) } 52 52 \end{center} 53 53 \titrebp{1} … … 168 168 SOPHYA library. 169 169 \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 171 as examples for using SOPHYA. 171 172 \item[] {\bf PrgUtil/} Various utility programs (runcxx, scanppf, scanfits, \ldots) 172 173 \item[] {\bf PrgMap/} Programs performing operations on skymaps: projections, 173 174 power spectrum in harmonic space, \ldots 174 \item[] {\bf PMixer/} skymixer and related programs175 175 \end{itemize} 176 176 … … 204 204 interactive analysis tools. 205 205 \end{itemize} 206 207 The 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 210 and adapted to be compiled with SOPHYA. It can be used in particular to read and analyse 211 EROS light curve data files. 212 \item[] {\bf LUC} {\bf L}ittle {\bf U}niverse {\bf C}alculator is a module containing classes to 213 perform basic computation related to the universe geometry (FRW metric). 214 \item[] {\bf PMixer/} skymixer and related programs 215 \end{itemize} 216 206 217 \newpage 207 218 … … 344 355 \end{verbatim} 345 356 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 360 library, , the PI GUI library. The interactive data analysis framework is defined 361 by the classes in the {\bf PIext} module. spiapp has a c-shell like 362 command interpreter and can be used to manipulate SOPHYA and display 363 objects. Refer to the piapp user manual for more information. 364 \begin{verbatim} 365 csh> spiapp -h 366 SophyaInitiator::SophyaInitiator() BaseTools Init 367 PIOPersist::Initialize() Starting Sophya Persistence management service 368 SOPHYA 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} 346 387 \newpage 347 388 … … 396 437 which shares the data, while the assignment operator copies or 397 438 duplicate the data. 439 440 \section{Multi-thread programming with SOPHYA} 441 Multi-thread programming is usually safe as long as different threads DO NOT access 442 the same memory locations. SOPHYA is mainly organized as classes having only 443 data members, with very few cases having static data members (memory locations 444 common to all instances of a class), or seldom, global variables. \\ 445 Using different instances of a class in different threads is thus safe for most 446 classes / methods in SOPHYA. \\ 447 A major exception is the reference sharing mechanism, where different instances 448 of a class may shared memory locations. This reference sharing mechanism has been 449 made thread-safe in SOPHYA, from version V=2.1. \\ 450 As a consequence, different execution threads can access non overlapping sub-arrays 451 and access (read/write) the corresponding elements without the need of 452 mutex and thread synchonisation. Moreover, thread safe filling of 453 NTuple and DataTable objects can be activated, on an object per object basis. \\ 454 The {\tt ZThread, ZMutex \ldots} classes in the {\bf SysTools } module offer a relatively 455 easy way of writing multi-threaded programs. 398 456 399 457 \newpage … … 598 656 \end{figure} 599 657 \begin{itemize} 600 \item[ ] \tcls{SegDataBlock} handles arrays of object of658 \item[\rond] \tcls{SegDataBlock} handles arrays of object of 601 659 type {\bf T} with reference sharing in memory. The array can be extended 602 660 (increase in array size) with fixed segment size. It implements the interface 603 661 defined by \tcls{SegDBInterface}. 604 \item[ ] \tcls{SwSegDataBlock} Implements the same \tcls{SegDBInterface}662 \item[\rond] \tcls{SwSegDataBlock} Implements the same \tcls{SegDBInterface} 605 663 using a data swapper object. Data swappers implement the interface defined in 606 664 (\tcls{DataSwapperInterface} class. \tcls{SwSegDataBlock} can … … 808 866 \item {\bf Range(idx)} represents a single index ({\bf = idx}) 809 867 \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}.\\ 811 869 The static method {\tt Range::lastIndex()} can be used 812 870 to specify the last valid index. … … 1040 1098 \end{verbatim} 1041 1099 1100 \subsection{Cast without conversion} 1042 1101 1043 1102 \subsection{Memory organisation} … … 2011 2070 OS & compiler \\ 2012 2071 \hline 2013 Linux & g++ (3.x \, 4.0) \\ 2014 Linux (SCL) & icc - Intel compiler (9.0) \\ 2072 Linux (32 bits) & g++ (3.x \, 4.0) \\ 2073 Linux (SCL, 32) & icc - Intel compiler (9.0) \\ 2074 Linux (SCL, 64) & g++ 3.3 \, 3.4 \\ 2015 2075 MacOSX/Darwin (PowerPC) 10.3 \, 10.4 & g++ (3.3 \, 4.0)\\ 2016 2076 MacOSX/Darwin (Intel) 10.4 & g++ (4.0)\\ 2017 2077 HP/Compaq/DEC Tru64 ( OSF1) & cxx (6.1 6.3) \\ 2018 2078 SGI IRIX64 & CC (7.3) \\ 2019 IBM AIX & xlC (7.x) \\2079 IBM AIX (5.3) & xlC (8.0) \\ 2020 2080 \hline 2021 2081 \end{tabular} … … 2069 2129 csh> ./configure -h 2070 2130 configure [-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) 2077 2138 \end{verbatim} 2078 2139 \begin{itemize} … … 2083 2144 \item[] -incln : creates symbolic link for include files, instead of copying them. 2084 2145 \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 2147 the files in BuildMgr/ directory is selected, based on the system name and the 2148 compiler {\tt Linux\_g++\_make.inc , OSF1\_cxx\_make.inc , AIX\_xlC\_make.inc \ldots} 2086 2149 \item[] -extp : Adds the specied path to the search path of the external libraries 2087 2150 include files and archive library. … … 2092 2155 \item[] -noextlib : Disable compiling of modules referencing external libraries. 2093 2156 \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 2157 library : {\tt -noext fits , -noext fftw \ldots } 2158 \item[] -usefftw2: Use FFTW V2 instead of the default FFTW V3 - A preprocessor 2159 flag will be defined in sspvflags.h 2160 \item[] -uselapack2: Lapack V2 is being used (defaulr V3) - A preprocessor 2161 flag will be defined in sspvflags.h 2162 \item[] -alsofftwfloat : compile single precision (float) version of the Fourier 2163 transform methods (module IFFTW, class FFTWServer). A preprocessor 2164 flag 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 2166 precision 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 2100 2169 modules will be build. A compilation flag 2101 will be defined in sspvflags.h . `See also target {\tt slballinone} below.2170 will be defined in sspvflags.h . \\ See also target {\tt slballinone} below. 2102 2171 \end{itemize} 2172 2173 {\large \bf configure steps } \\[1mm] 2174 The 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 2179 in {\tt \$SOPHYABASE/include} 2180 \item Search for external libraries (-lfits \ldots) and add the corresponding 2181 directories 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] 2103 2189 2104 2190 In the example below, we assume that we want to install Sophya from a
Note:
See TracChangeset
for help on using the changeset viewer.