SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
CPSeis – an Open-Source

                 Case History
                   Bill Menger
                   June 16, 2011

Date, location
Outline


•   Get Permission
•   Understand ROI
•   What is your End Game?
•   Pick a Target Platform
•   Issues
    –   Compiler changes
    –   Fixing legacy code
    –   Packaging
    –   Helping users
• Another project introduction -- GeoCraft
PERMISSION


• Research licenses for open source, make sure they are
  business-friendly. http://opensource.org MIT license
• I picked MIT because it is small (2 paragraphs)
• LEGAL
   – The legal team always wants to add their changes
   – DON’T LET THEM! Help them understand why the license needs
     to be left alone. Help them see the benefits.
   – Take your lawyer to lunch
• MANAGEMENT
   – Make sure the company is ready to shed itself of this IP
   – Get your Management on board – What do they get from it?
Return On Investment

• MANAGEMENT must see value in open-source
• ROI takes on many forms for a company
  – WILL THEY STILL USE THE SOFTWARE?
     o Then ROI includes more users hitting it and finding bugs, helping
       with changes
     o ROI includes allowing others to work with your internal
       programming team
  – HAVE THEY ABANDONED THE SOFTWARE?
     o ROI includes “Good Will” among the community
         • Corporate Image
         • Grad School Users – recruiting leverage
• THE INVESTMENT IS YOUR TIME and YOUR Company
  ATTORNEY’s TIME
END GAME


• What do you hope to accomplish?
• For CPSeis, my goal was:
   – Provide a system for undergraduate and graduate study of
     seismic processing
   – Provide a means for others to mine the software for algorithms
• Results to date:
   – OpenGeophysical built a product around it (OpenCPS)
   – Fusion added wrappers to the modules for their product
     (GeoPRO)
   – Several others have the software internally
   – But I haven’t packaged it well enough for easy use among
     students… and it lacks an easy-to-use interface
Target Platform


        This is difficult for a complete system
•   Match up a good MPI
•   A good Queuing system
•   A good compiler (or set of compilers)
•   An Operating system
•   A package manager
•   Third-party dependencies
•   A Graphics suite/engine
Target Platform


Dependencies           O/S
• FFTW 2.1.5           • Centos 4.8 x86_64 OR
• MPICH2               • Centos 4.8 x86
• Java 1.6             • Ubuntu 8.04
• OpenMotif            • gfortran 4.1.2
                       • gcc 3.4.6
                       • Torque/Maui
Issues


•   Getting “market share”
•   Compiler Changes
•   Fixing legacy code
•   Packaging
•   Helping users
Decisionmaker Thinking
(obtaining market share)
Compiler Changes
                     and Legacy Code

• “Hard” compilers (F9x, C++)
   – GNU C++ is more strict than it used to be
   – So… legacy C++ sometimes decides to not compile
   – The work may be overwhelming… so


• Modify the Software OR
• Repackage with other Open Source components!
• EXAMPLE:
   – cbyt, va, (Viewer and Velocity Analysis)
   – if you can’t fix it, mix it up with SU suximage, gnuplot…
Fixing Legacy Code

•   Fortran usually not a problem (F90 F95, that is)
•   F77 code is full of old errors, hard to find
•   C++ (for me at least) is a nightmare
•   gdb is your friend
•   (and so is “print”)
•   But… Get the code to work. Put it into a structure
•   Take out as many dependencies on the old environment
    as you can
    – Seek out the hard-coded environment (ex:
      plottername=hoplot1, pony5…)
    – Fix up the build environment as well!
Packaging

• Put the code together in some kind of structure that will
  allow for changes
   – Because you WILL be putting in the changes – no one else will!
• When you get ready, put the source into SVN
   – Sourceforge is a good repository
   – Eclipse can be used with subclipse for end users to keep code
     current and to checkout/in changes
• Keep working on your makefiles and build scripts
   – Help the user pick a target platform that you can support
   – Don’t try to please everyone, you will fail
• Include scripts to help the user add thirdparty
  dependencies
Helping Users


• If you don’t have time to do the above steps…
• Then you’ll spend more time here.

• Do what you can
• Enlist others
• Try to form a support group

• It all goes back to “perceived usefulness”
Screen Shots - cfe
Screen Shots - cbyt
GeoCraft

•   Pure Java
•   Many Platforms
•   Interpretation
•   AVO analysis
•   Model Building
•   Viewing
    –   LAS
    –   3D Seismic
    –   2D Seismic
    –   Horizons/Grids
• Toolkit for attributes, smoothing, etc.
GeoCraft – SEG Salt Model
GeoCraft – SEG Salt Model
REFERENCES


•   http://cpseis.org
•   http://sourceforge.net/projects/cpseis
•   http://geocraft.org
•   http://code.google.com/p/geocraft/downloads/list
•   http://opensource.org/licenses/MIT
ACKNOWLEDGEMENTS


• ConocoPhillips – For allowing the code to be open-
  sourced
• Weinman Geoscience – For allowing me to take time to
  work on this project
• Eric Geordi, Bill Lucas, Heather Shelly, Amy Sharp, and
  many others who wrote the code, helped with recent
  versions, and provided assistance
CPSeis & GeoCraft

Contenu connexe

Similaire à CPSeis & GeoCraft

August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Jody Garnett
 
Continuous Delivery Decision points
Continuous Delivery Decision pointsContinuous Delivery Decision points
Continuous Delivery Decision pointsKelly Looney
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)Mike Harris
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
Putting Compilers to Work
Putting Compilers to WorkPutting Compilers to Work
Putting Compilers to WorkSingleStore
 
Vimeo and Open Source (SMPTE Forum 2015)
Vimeo and Open Source (SMPTE Forum 2015)Vimeo and Open Source (SMPTE Forum 2015)
Vimeo and Open Source (SMPTE Forum 2015)Derek Buitenhuis
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...dmgerman
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye codeKim Moir
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
Open.source.innovation.20070624
Open.source.innovation.20070624Open.source.innovation.20070624
Open.source.innovation.20070624Vu Hung Nguyen
 
MPI Requirements of the Network Layer
MPI Requirements of the Network LayerMPI Requirements of the Network Layer
MPI Requirements of the Network Layerinside-BigData.com
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Larry Smarr
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Larry Smarr
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Larry Smarr
 
Start your open source project
Start your open source projectStart your open source project
Start your open source projectAhmed Othman
 
Development Environment Tips
Development Environment TipsDevelopment Environment Tips
Development Environment TipsAdam Culp
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Bruno Capuano
 

Similaire à CPSeis & GeoCraft (20)

August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
 
Continuous Delivery Decision points
Continuous Delivery Decision pointsContinuous Delivery Decision points
Continuous Delivery Decision points
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Putting Compilers to Work
Putting Compilers to WorkPutting Compilers to Work
Putting Compilers to Work
 
Vimeo and Open Source (SMPTE Forum 2015)
Vimeo and Open Source (SMPTE Forum 2015)Vimeo and Open Source (SMPTE Forum 2015)
Vimeo and Open Source (SMPTE Forum 2015)
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
Open.source.innovation.20070624
Open.source.innovation.20070624Open.source.innovation.20070624
Open.source.innovation.20070624
 
MPI Requirements of the Network Layer
MPI Requirements of the Network LayerMPI Requirements of the Network Layer
MPI Requirements of the Network Layer
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
 
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
Panel: Open Infrastructure for an Open Society: OSG, Commercial Clouds, and B...
 
Start your open source project
Start your open source projectStart your open source project
Start your open source project
 
Development Environment Tips
Development Environment TipsDevelopment Environment Tips
Development Environment Tips
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 

Dernier

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Dernier (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

CPSeis & GeoCraft

  • 1. CPSeis – an Open-Source Case History Bill Menger June 16, 2011 Date, location
  • 2. Outline • Get Permission • Understand ROI • What is your End Game? • Pick a Target Platform • Issues – Compiler changes – Fixing legacy code – Packaging – Helping users • Another project introduction -- GeoCraft
  • 3. PERMISSION • Research licenses for open source, make sure they are business-friendly. http://opensource.org MIT license • I picked MIT because it is small (2 paragraphs) • LEGAL – The legal team always wants to add their changes – DON’T LET THEM! Help them understand why the license needs to be left alone. Help them see the benefits. – Take your lawyer to lunch • MANAGEMENT – Make sure the company is ready to shed itself of this IP – Get your Management on board – What do they get from it?
  • 4. Return On Investment • MANAGEMENT must see value in open-source • ROI takes on many forms for a company – WILL THEY STILL USE THE SOFTWARE? o Then ROI includes more users hitting it and finding bugs, helping with changes o ROI includes allowing others to work with your internal programming team – HAVE THEY ABANDONED THE SOFTWARE? o ROI includes “Good Will” among the community • Corporate Image • Grad School Users – recruiting leverage • THE INVESTMENT IS YOUR TIME and YOUR Company ATTORNEY’s TIME
  • 5. END GAME • What do you hope to accomplish? • For CPSeis, my goal was: – Provide a system for undergraduate and graduate study of seismic processing – Provide a means for others to mine the software for algorithms • Results to date: – OpenGeophysical built a product around it (OpenCPS) – Fusion added wrappers to the modules for their product (GeoPRO) – Several others have the software internally – But I haven’t packaged it well enough for easy use among students… and it lacks an easy-to-use interface
  • 6. Target Platform This is difficult for a complete system • Match up a good MPI • A good Queuing system • A good compiler (or set of compilers) • An Operating system • A package manager • Third-party dependencies • A Graphics suite/engine
  • 7. Target Platform Dependencies O/S • FFTW 2.1.5 • Centos 4.8 x86_64 OR • MPICH2 • Centos 4.8 x86 • Java 1.6 • Ubuntu 8.04 • OpenMotif • gfortran 4.1.2 • gcc 3.4.6 • Torque/Maui
  • 8. Issues • Getting “market share” • Compiler Changes • Fixing legacy code • Packaging • Helping users
  • 10. Compiler Changes and Legacy Code • “Hard” compilers (F9x, C++) – GNU C++ is more strict than it used to be – So… legacy C++ sometimes decides to not compile – The work may be overwhelming… so • Modify the Software OR • Repackage with other Open Source components! • EXAMPLE: – cbyt, va, (Viewer and Velocity Analysis) – if you can’t fix it, mix it up with SU suximage, gnuplot…
  • 11. Fixing Legacy Code • Fortran usually not a problem (F90 F95, that is) • F77 code is full of old errors, hard to find • C++ (for me at least) is a nightmare • gdb is your friend • (and so is “print”) • But… Get the code to work. Put it into a structure • Take out as many dependencies on the old environment as you can – Seek out the hard-coded environment (ex: plottername=hoplot1, pony5…) – Fix up the build environment as well!
  • 12. Packaging • Put the code together in some kind of structure that will allow for changes – Because you WILL be putting in the changes – no one else will! • When you get ready, put the source into SVN – Sourceforge is a good repository – Eclipse can be used with subclipse for end users to keep code current and to checkout/in changes • Keep working on your makefiles and build scripts – Help the user pick a target platform that you can support – Don’t try to please everyone, you will fail • Include scripts to help the user add thirdparty dependencies
  • 13. Helping Users • If you don’t have time to do the above steps… • Then you’ll spend more time here. • Do what you can • Enlist others • Try to form a support group • It all goes back to “perceived usefulness”
  • 16. GeoCraft • Pure Java • Many Platforms • Interpretation • AVO analysis • Model Building • Viewing – LAS – 3D Seismic – 2D Seismic – Horizons/Grids • Toolkit for attributes, smoothing, etc.
  • 17. GeoCraft – SEG Salt Model
  • 18. GeoCraft – SEG Salt Model
  • 19. REFERENCES • http://cpseis.org • http://sourceforge.net/projects/cpseis • http://geocraft.org • http://code.google.com/p/geocraft/downloads/list • http://opensource.org/licenses/MIT
  • 20. ACKNOWLEDGEMENTS • ConocoPhillips – For allowing the code to be open- sourced • Weinman Geoscience – For allowing me to take time to work on this project • Eric Geordi, Bill Lucas, Heather Shelly, Amy Sharp, and many others who wrote the code, helped with recent versions, and provided assistance