210 likes | 226 Views
Learn about the new features and changes in Broadband Platform 15.3.0, a collaborative software system used by SCEC research groups for computing seismograms and calculating ground motions. The release includes updated compilers, improved command-line interface, and new GMPE groups.
E N D
Broadband Platform 15.3.0 Release Readiness Review Fabio Silva 14 April 2015
What is the Broadband Platform (BBP)? • Collaborative software system • SCEC research groups • CME software development • Computes seismograms from 0-100 Hz • Depending on the method and parameters used • Valuable in calculating ground motions timeseries at selected locations for scenario earthquakes • Can be run by scientists or engineers without detailed knowledge of the code details • Generates repeatable results
What’s new in Broadband Platform 15.3.0? • Uses only GNU compilers • Intel compilers not needed anymore • Runs on Linux, Mac OS X, Virtual Box • Features a simplified command-line interface • Incorporates updated UCSB method • Can work with smaller events, surface ruptures • Includes 3 GMPE groups • NGA-West 1 (AS08, BA08, CB08, CY08) • NGA-West 2 (ASK14, BSSA14, CB14, CY14) • CENA Group 1 (A0811E, PZT11, S03SCVS)
Intel Compiler Changes • ExSIM (Fortran) • GNU inquire command doesn’t support directories • Use system(‘mkdir –p <dir>’) instead • SDSU (Fortran) • BBToolbox • sind and cosd are Intel extensions • Convert to radians and use regular sin/cos functions • MOGoF • sin and cos functions in GNU library take much longer • Use Taylor series as approximation (order 20)
Mac OS X Requirements • Mac OS X Mavericks or Yosemite • Xcode (App Store) with command-line tools • MacPorts (2.3.3) • GCC 4.8 (Mavericks) or 4.9 (Yosemite) • Python 2.7.5 (will run on 2.6.x) • PIP (for installing PyPI packages) • PyProj (1.8.9) • NumPy (1.4.1) • SciPy (0.7.2) • Matplotlib (1.0.1)
Mac OS X Changes • GP method only • Missing include files #ifndef __APPLE__ #include <features.h> #endif • features.h, sys/procfs.h, • O_LARGEFILE definition #ifdef __APPLE__ #define O_LARGEFILE 0 #endif
Development Tools • Editor and IDE • Emacs, PyCharm • Code checking • Pylint • Integrated version control and issue tracker • Trac • SVN • Link commits to Trac issues by adding tags to commit comments • Code coverage measurement • coverage
Pylint • Checks coding standards (PEP8) • Proper indentation, line lengths, variable and class names • Help with error detection • Proper imports, variable use • Customizable • Which messages to show • http://www.pylint.org
Pylint (2) • BBP code rating (comps directory) $ total=0; points=0; for i in `ls *.py`; do score=`pylint $i 2>&1 | grep "has been rated" | awk '{print $7}' | awk -F '/' '{print $1}'`; echo "$i: $score"; total=$((total+1)); points=`echo $points + $score | bc`; done; avg_score=`echo "scale=3; $points / $total" | bc`; echo "--------------------------"; echo "Files evaluated: $total"; echo "Average score: $avg_score” PlotGOF.py: 9.58 PlotMap.py: 8.28 PlotSRF.py: 8.36 amp_fac.py: 9.20 arias_duration.py: 9.56 bband_utils.py: 9.52 bbp_formatter.py: 8.60 bbp_status.py: 9.75 … vm2vm.py: 10.00 wcc_siteamp.py: 8.80 xml_handler.py: 8.49 -------------------------- Files evaluated: 94 Average score: 7.221
Pylint (3) • Penalized for things like • Lines exceeding 80 characters • Too many lines/arguments/variables/branches in method • Too many/few methods in class • Too many instance attributes • Naming conventions (classes/methods/variables) • “from <file> import *” statements • Improper indentation • Missing docstrings
Simplified Command-Line Interface • Validation • event • method • Scenario • velocity model • method • source file • station list
$ run_bbp.py Welcome to the SCEC Broadband Platform version 15.3.0. ================================================================================ Please select the Broadband Platform mode of operation: * Validation - Simulates a historical event * Scenario - Runs a user-defined hypothetical event Do you want to perform a validation simulation (y/n)? y ================================================================================ Please select a validation event from the list below: (1) Alum Rock (2) Chino Hills ? 2 ================================================================================ The Broadband Platform includes several scientific methods that can be used to calculate synthetic seismograms. Choose a Method to use in this Broadband validation simulation: (1) GP (Graves & Pitarka) (2) UCSB (3) SDSU (4) EXSIM (5) CSM (Composite Source Model) - Beta Version ? 1 ================================================================================ SRC file: /home/sarah/bbp/bbp_val/ChinoHills/common/ch_v14_2_2.src ================================================================================ STL file: /home/sarah/bbp/bbp_val/ChinoHills/common/ch_v14_2_2.stl
Expert Mode • Expert mode allows for extra functionality • Start simulation from SRF file • Run rupture generator outside platform Seok-Goo • Custom SRC file and/or station list • Reduced number of stations • Modified validation SRC file • Site response • Plot generation • SDSU Goodness-of-Fit module instead of GP • Select GMPE group to use
What else is new in BBP 15.3.0? • New directory structure • Removed station distance from station list files • BBP calculates the distance automatically • Updated methods • ExSIM: bug fixes for close stations • GP: randomizes rupture velocity • SDSU: fixes for merging frequency, time step features • UCSB: can do surface ruptures, smaller magnitudes • Save method-specific input files in outdata directory • Include version number in BBP workflow description
Updated Directory Structure $ ls –l -rwxr-xr-x 1 fsilva staff 2659 Apr 9 15:12 README drwxr-xr-x 9 fsilva staff 306 Mar 6 09:24 bbp drwxr-xr-x 8 fsilva staff 272 Apr 9 14:35 doc $ ls -l bbp drwxr-xr-x 100 fsilva staff 3400 Apr 10 14:54 comps -rw-r--r-- 1 fsilva staff 73 Mar 6 09:24 makefile drwxr-xr-x 4 fsilva staff 136 Nov 4 09:46 mod_data drwxr-xr-x 9 fsilva staff 306 Jun 30 2014 plot drwxr-xr-x 9 fsilva staff 306 Mar 23 14:39 src drwxr-xr-x 42 fsilva staff 1428 Apr 3 14:11 tests drwxr-xr-x 8 fsilva staff 272 Mar 6 09:19 utils $ ls -l doc -rwxr-xr-x 1 fsilva staff 7591 Apr 9 14:35 INSTALL_NOTES -rw-r--r-- 1 fsilva staff 3714 Mar 4 13:33 LICENSE.TXT -rw-r--r-- 1 fsilva staff 87997 Mar 20 12:11 MANIFEST -rw-r--r-- 1 fsilva staff 11451 Mar 31 14:11 RELEASE_NOTES -rw-r--r--@ 1 fsilva staff 214656 Mar 31 14:03 USER_GUIDE_15.3.0.pdf drwxr-xr-x 5 fsilva staff 170 Mar 18 15:51 examples
Broadband Platform 15.3.0 Results • Complete Part-A and Part-B validations • All events, all methods • Compare against previous results • BBP 14.3.0 versus BBP 15.3.0 • Code changes • Extra events for UCSB • Changes to east events (source file, stations)
Broadband Platform 15.3.0 Release • Minimum Distribution • Source distribution • LABasin velocity model (needed for unit, acceptance tests) • Northridge validation (needed for acceptance tests) • Optional Downloads • Mojave, NoCAL, Central Japan, Western Japan, CEUS 1000, Canada 1000 velocity model packages • Chino Hills, Alum Rock, Loma Prieta, Landers, North Palm Springs, Saguenay, Riviere-du-Loup, Mineral, Tottori, Niigata validation events • Virtual Box including all of the above
BBP 15.3.0 Release Automation • Scripts (take version number) • Create source distribution from SVN directory • Generate md5 sums for all validation/velocity models • Create validation/velocity model tar files • Create md5 sum files
Broadband Platform 15.3.0 Documentation • Wiki • BBP 15.3.0 page • BBP 15.3.0 User Guide • BBP on OS X Guide • BBP 15.3.0 Release Notes • BBP distribution • README • INSTALL_GUIDE • USER_GUIDE_15.3.0.pdf (from WIKI) • RELEASE_NOTES