[Solid_software] art experience

Ole Hansen ole at jlab.org
Fri Mar 4 13:27:26 EST 2016


Hi Rich,

a bit of a late reply from me, but that you very much for the nice
writeup on getting started with art. I'll put a lot of this, modified
for the JLab environment, on the SoLID wiki.

BTW, there is quite a lot more programmer/expert-level documentation on
art beyond the workbook:

art wiki:

https://cdcvs.fnal.gov/redmine/projects/art/wiki

mu2e docs:

http://mu2e.fnal.gov/public/hep/computing/gettingstarted.shtml

especially the links in the section "Mu2e maintained documentation about
art and its tool chain"

Ole

On 02/25/2016 04:17 PM, Richard S. Holmes wrote:
> Turns out the event display works if I try it on the Linux box's screen
> rather than ssh to it on my Mac. Progress of a sort.
> 
> On Thu, Feb 25, 2016 at 3:40 PM, Richard S. Holmes <rsholmes at syr.edu
> <mailto:rsholmes at syr.edu>> wrote:
> 
>     I've been trying out art. (It's supposed to be in italics, /art/,
>     but I'm not about to start doing that.) I started off by downloading
>     the Workbook
> 
>         https://web.fnal.gov/project/ArtDoc/_layouts/15/WopiFrame.aspx?sourcedoc=%2Fproject%2FArtDoc%2FShared%20Documents%2Fart-documentation%2Epdf&action=view
> 
> 
>     and started reading. Then I started installing based on Appendix B.
> 
>     At first I tried installing on my Mac, which runs OS X 10.8 (Snow
>     Leopard). Appendix B seems to say the version supported for OS X
>     10.9 (Mavericks) would probably run on 10.8, but I got errors and
>     after getting a response to a post on the art users mailing list
>     telling me it was due to the OS I decided to abandon that. (I will
>     very soon by replacing my Mac with a new one running OS X 10.11 (El
>     Capitan) but art isn't supported on that either, yet. I'm going from
>     too old to too new.)
> 
>     So instead I installed art on a CentOS machine, specifically
>     OSRELEASE=Linux_CentOS6.5-x86_64-gcc4.4.7.
> 
>     One thing to notice is they want you (or at least the documentation
>     expects you) to use bash, not tcsh. This is fine with me, I much
>     prefer bash, but JLab seems to be pretty tcsh-centric.
> 
>     Installation went like this:
> 
>         mkdir -p art/products
>         cd art/products/
>         mkdir ../tmp
>         cd ../tmp
>         curl -O http://scisoft.fnal.gov/scisoft/bundles/tools/pullProducts
>         chmod u+x pullProducts
>         ./pullProducts ~rsholmes/art/products slf6
>         toyExperiment-v0_00_29 s14-e7 debug
>         cd ..
>         rm -rf tmp
> 
> 
>     All of this worked. I didn't time it but I'd guess it took on the
>     order of 30 minutes. The resulting art/products directory and its
>     subdirectories came to a total of 4.2G disk usage.
> 
>     (There is a gotcha here however: Appendix B says you can do
>     pullProducts with prof, debug, or both (to get profile, debug, or
>     both versions). I just did debug. However, the workbook examples
>     assume prof. For a while I was able to get along by specifying debug
>     instead of prof in command lines, but eventually I hit a place where
>     prof is evidently assumed in a shell script. I gave up and installed
>     the prof version at that point. That took about 15 minutes; many of
>     the products already existed from the pullProducts debug done
>     earlier. Total disk usage in the products directory and
>     subdirectories after this was 5.4G.)
> 
>     Next I created a setup script, again following Appendix B. I chose
>     to put it in the art directory; I also chose to create
>     subdirectories art/output and art/working. (For a serious
>     installation I'd probably use our data/work disk instead of the home
>     disk for these directories.) Here is my setup script:
> 
>         source /home/rsholmes/art/products/setup
>         export ART_WORKBOOK_OUTPUT_BASE=/home/rsholmes/art/output
>         export ART_WORKBOOK_WORKING_BASE=/home/rsholmes/art/working
>         export ART_WORKBOOK_QUAL=s14:e7
> 
> 
>     Following this I went back to Chapter 9 and followed the procedure
>     in 9.6.1.1 and successfully ran art!
> 
>         mep1[pre-built]$ art -c hello.fcl >& output/hello.log
>         mep1[pre-built]$ 
>         mep1[pre-built]$ 
>         mep1[pre-built]$ cat output/hello.log 
>         %MSG-i MF_INIT_OK:  art 18-Feb-2016 15:14:34 EST JobSetup
>         Messagelogger initialization complete.
>         %MSG
>         18-Feb-2016 15:14:35 EST  Initiating request to open file
>         inputFiles/input01.art
>         18-Feb-2016 15:14:35 EST  Successfully opened file
>         inputFiles/input01.art
>         Begin processing the 1st record. run: 1 subRun: 0 event: 1 at
>         18-Feb-2016 15:14:35 EST
>         Hello World! This event has the id: run: 1 subRun: 0 event: 1
>         Hello World! This event has the id: run: 1 subRun: 0 event: 2
>         Hello World! This event has the id: run: 1 subRun: 0 event: 3
>         Hello World! This event has the id: run: 1 subRun: 0 event: 4
>         Hello World! This event has the id: run: 1 subRun: 0 event: 5
>         Hello World! This event has the id: run: 1 subRun: 0 event: 6
>         Hello World! This event has the id: run: 1 subRun: 0 event: 7
>         Hello World! This event has the id: run: 1 subRun: 0 event: 8
>         Hello World! This event has the id: run: 1 subRun: 0 event: 9
>         Hello World! This event has the id: run: 1 subRun: 0 event: 10
>         18-Feb-2016 15:14:35 EST  Closed file inputFiles/input01.art
>         TrigReport ---------- Event  Summary ------------
>         TrigReport Events total = 10 passed = 10 failed = 0
>         TrigReport ------ Modules in End-Path: end_path ------------
>         TrigReport  Trig Bit#    Visited     Passed     Failed    
>          Error Name
>         TrigReport     0    0         10         10          0          0 hi
>         TimeReport ---------- Time  Summary ---[sec]----
>         TimeReport CPU = 0.000680 Real = 0.000000
>         Art has completed and will exit with status 0.
> 
> 
>     From there on through Chapter 18 things went smoothly. There were a
>     few places where evidently the Workbook hasn't caught up with the
>     software and things were a little different than expected. (For
>     instance: In chapter 10 they introduce the artmod tool, and say it
>     will write a (superfluous) destructor definition by default. But it
>     didn't.) Generally these were easy to spot and not consequential.
> 
>     Chapter 19, the last chapter (3D Event Displays), was a no go: art
>     -c fcl/EventDisplay3D/eventDisplay01.fcl crashed immediately on my
>     machine:
> 
>     A cet::exception is going through WorkerT<EDAnalyzer>:
> 
>         %MSG
>         %MSG-s ArtException:  EventDisplay3D:eventDisplay at BeginJob
>          25-Feb-2016 14:39:55 EST ModuleConstruction
>         cet::exception caught in art
>         ---- OtherArt BEGIN
>           ---- FatalRootError BEGIN
>             Fatal Root Error: @SUB=TEveViewer::SpawnGLViewer
>             Insufficient support from the graphics hardware. Aborting.
>             A cet::exception is going through WorkerT<EDAnalyzer>:
>             Module type=EventDisplay3D, Module label=eventDisplay,
>         Parameter Set ID=4e83570561ae955c6e64bec8e95d3950e1e15a1a,
>         Process name=eventDisplay01, 
>         Release Version=v1_15_01, Pass ID=, Main Parameter Set
>         ID=6c07a5d87929f54bec85265c36ad9a3edcd450a8
>           ---- FatalRootError END
>         ---- OtherArt END
>         %MSG
>         Art has completed and will exit with status 1.
> 
> 
>     I have no idea how or if I can fix this.
> 
>     Up to that point, though, everything pretty much worked, as noted.
>     The documentation, which mostly consists only of the (incomplete)
>     Workbook at this time, is very good. It's 450+ pages with a lot left
>     to be written. It mostly tells you how to run art and write user
>     analysis modules for it. Writing the experiment-specific (SoLID)
>     code for the users to use would go well beyond that, of course. 
> 
>     It looks well designed to me and the code seems clean. This, by the
>     way, is the first time I've looked at C++11. From what I can tell
>     most of what's been added is fairly arcane stuff I don't know if I'd
>     ever have a use for. I do like, though, that we finally have
>     range-based for loops:
> 
>         for ( GenParticle const& gen : *gens ){ 
> 
>          ...
> 
>         } 
> 
> 
>     The functionality of art seems very good. As Ole has pointed out,
>     the FHiCL control language doesn't allow for doing things like
>     computing parameters; if you need to do that you might have to e.g.
>     write a Python script to generate FHiCL files. On the other hand
>     FHiCL is, it seems to me, a cleaner and easier to read/maintain way
>     of driving analysis tasks than Perl/Python/shell scripts, long
>     multi-option command lines, and gcard files. 
> 
>     So far art looks like a good framework choice for SoLID to me.
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ole.vcf
Type: text/x-vcard
Size: 321 bytes
Desc: not available
URL: <https://mailman.jlab.org/pipermail/solid_software/attachments/20160304/5a919894/attachment.vcf>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 230 bytes
Desc: OpenPGP digital signature
URL: <https://mailman.jlab.org/pipermail/solid_software/attachments/20160304/5a919894/attachment.sig>


More information about the Solid_software mailing list