Unclassified/FOUO Zeta White Noise Hour Presents: NeXtMidas / X-Midas Interoperability 18 Jan 2006.

Slides:



Advertisements
Similar presentations
Technotronics GCECT '091 Decode C This is a C Programming event, where you will be given problems to solve using C only. You will be given a Linux system.
Advertisements

What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Operating System Structures
Setting up of condor scheduler on computing cluster Raman Sehgal NPD-BARC.
MC697 Object-Oriented Programming Using Java. In this class, we will cover: How the class will be structured Difference between object-oriented programming.
Client Side Programming Using Java Applet Outcomes: You will be expected to know: – Java Applets and HTML file; –bytecode and platform independent programs;
CS Lecture 03 Outline Sed and awk from previous lecture Writing simple bash script Assignment 1 discussion 1CS 311 Operating SystemsLecture 03.
1 Ant – Another Neat Tool Representation and Management of Data on the Internet.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Installing software on personal computer
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
1 Chapter-01 Introduction to Computers and C++ Programming.
CCSA 221 Programming in C CHAPTER 2 SOME FUNDAMENTALS 1 ALHANOUF ALAMR.
Parts of a Computer Why Use Binary Numbers? Source Code - Assembly - Machine Code.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Booting and boot levels
Introduction to C Programming. A Brief History u Created by Dennis Ritchie at AT&T Labs in 1972 u Originally created to design and support the Unix operating.
Using Visual Basic 6.0 to Create Web-Based Database Applications
1 Chapter 2 First Java Programs Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
NASRULLAH KHAN.  Lecturer : Nasrullah   Website :
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
Tags Pages 63 to 114 in your workbook. Tag Browser Review of the communication chain Polling Driver concepts Tag Browser in detail – Filtering – The tag.
Computer Programming 12 Mr. Jean March 19 th, 2013.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
VirtualBox What you need to know to build a Virtual Machine.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
The Basics of Javadoc Presented By: Wes Toland. Outline  Overview  Background  Environment  Features Javadoc Comment Format Javadoc Program HTML API.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Contrasting styles of Web UI Development: GWT vs Native JavaScript Roland Schweitzer Weathertop Consulting, LLC Jeremy Malczyk JISAO.
Objective C Basics. It’s C with Some Extras!  Cross Platform language  Mac  Linux/UNIX  Windows  Layer above C (Superset)  Adds Object-Oriented.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
(1) A Beginner’s Quick Start to SIMICS. (2) Disclaimer This is a quick start document to help users get set up quickly Does not replace the user guide.
Introduction to C Programming CE Lecture 7 Compiler options and makefiles.
Java Basics - Prashant Nagaraddi. Features of Java n Java syntax is similar to C/C++ but there are many differences too n Java is strongly typed like.
COP 3330 Notes 1/12. Today's topics Downloading Java and Eclipse Hello World Basic control structures Basic I/O Strings.
JCreator Tonga Institute of Higher Education. Programming with the command line and notepad is difficult. DOS disadvantages  User Interface (UI) is not.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
NASRULLAH KHAN.  Lecturer : Nasrullah   Website :
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Lab 8 Overview Apache Web Server. SCRIPTS Linux Tricks.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Glink for Java: applet, application and an API for integrating access to Bull, IBM, UNIX and Minitel systems with your Java based e-business applications.
AdaptJ Sookmyung Women’s Univ. PSLAB. 1. 목차 1. Overview 2. Collecting Trace Data using the AdaptJ Agent 2.1 Recording a Trace 3. Analyzing Trace Data.
1 Sections Java Virtual Machine and Byte Code Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
Lesson 2: First Java Programs. 2.1 Why Java? Java is one of the most popular programming languages in the world. Java is a modern object-oriented programming.
Using Linux Kaya Oğuz Room: 310.
Introduction to CMake, v. 2
2007/11/16 Dinh Trong Thuy RTLab
CSC 215 : Procedural Programming with C
File System Implementation
Chapter 3: Process Concept
Programming Language Hierarchy, Phases of a Java Program
Getting Started with R.
INTRODUCING Adams/CHASSIS
Text by: Lambert and Osborne
The Client/Server Database Environment
Chapter 2 First Java Programs
Lecture 1 Runtime environments.
Accessing Remote Datasets through the netCDF interface.
Java Programming Introduction
Chapter 2: Operating-System Structures
Introduce to Angular 6 Present by: Võ Văn Hào
Review of Previous Lesson
Java phoneME CDC AMS July, 15, 2008 by Wooram Noh.
Presentation transcript:

Unclassified/FOUO Zeta White Noise Hour Presents: NeXtMidas / X-Midas Interoperability 18 Jan 2006

Unclassified/FOUO Goal Write primitives once and run them in either framework

Unclassified/FOUO Why? Too costly to port existing/working primitives from one language to another Easier to build QRC or proof-of-concept systems Maintenance – Costly to maintain a C/FORTRAN and Java version of a library or primitive

Unclassified/FOUO How do we achieve this goal? X-Midas Backwards Compatibility (XBC) Option – Allows FORTRAN primitives to run in the NeXtMidas shell C/C++ TBD – The primitives use the NeXtMidas Java I/O and thus become “web-enabled” nM>newrate localfile.tmp Install NeXtMidas as an X-Midas option tree – Allows NeXtMidas (Java) primitives to run in the X-Midas shell – Single JVM runs all primitives – Loosely modeled after the X-Midas Remote Session Manager (RSM) nm/on/bg …nm plot nga_image …nm/off NOTE: In each case only ONE shell is required!

Unclassified/FOUO X-Midas Backward Compatibility Option Tree (XBC) - Concept A collection of m$ replacements written in C/FORTRAN that provide the interface into Java Macros are written in NeXtMidas – Can mix and match X-Midas and NeXtMidas primitives – Uses NeXtMidas intrinsics – Graphics and controls are all NeXtMidas

Unclassified/FOUO X-Midas Backward Compatibility Option Tree - Concept (cont) What it is intended for: – Ideal for DSP primitives – File/Pipe Input(s)/ File/Pipe Output(s) style What it is NOT intended for: – Not really meant to run “super-primitives” But…I am trying to get the super-primitive horizon_rt (VISI) to run this way – Not for X-Midas intrinsics or graphics – Not for low-level (ie lowio) or OS calls Matrix of wrapped m$ calls in XBC section of User’s Guide

Unclassified/FOUO XBC - Capabilites X-Midas primitives can: – Read/write results from/to the NeXtMidas results table – Aware of NeXtMidas AUX and OPTION list A little tricky since NeXtMidas supports AUX names or numbers but X-Midas only allows AUX numbers – Widgets are available by NAME instead of number – Read/write NeXtMidas pipes via easyio.for functions Not pipeio.for functions – Send and receive messages Full support for CONFIGURED messages (GENNMMSG) NON-CONFIGURED messages without data –

Unclassified/FOUO XBC vs Porting to Java What you get: – No code changes – Primitives quickly become “web-enabled” - Can access files as URLs – Get TAG= parameter syntax – X-Midas primitives can access Table results mytable.x or mytable.foo Limitations: – FORTRAN primitives can not access all NeXtMidas features like Complex data types (Objects) Named AUXES and Ids and more – Compiler dependencies – Limited deployment options Applications can not be Webstart or Applets

Unclassified/FOUO XBC – Current Support Matrix OS – Linux only Compilers – FORTRAN Portland Group 4+ Intel (7.x - 9.x) – C gcc (comes with Redhat) NeXtMidas Version – Recommend latest NeXtMidas (2.1.1+) More m$ calls wrapped since initial capability X-Midas version independent – Do not even have to install it

Unclassified/FOUO XBC – Usage In the NeXtMidas shell: – Add XBC to your path nM> path add xbc – Build XBC (first time only) nM>home mcr xbc nM>%buildopt xbc Default compiler is based on XM_FORTRAN environment variable (default is Portland Group) Compiler and options can be changed with NM_FORTRAN or build.props

Unclassified/FOUO XBC – Usage (cont) – Add a link to your X-Midas option tree in $NMROOT/nxm ln –s /midas/opts/visi102 visi – Add desired commands to NeXtMidas commands file (commands.cnf) nM>update Similar to commands.cfg but supports TAG= syntax – Build the option tree nM>make code visi

Unclassified/FOUO NeXtMidas as an X-Midas Option Tree (XMNXM) Initially an option tree called XMJVM developed by Warren Knight and Pete Perrino – Each Java programs (primitives) ran in its’ own Java Virtual Machine (JVM) – Could not access pipes – Could not run NeXtMidas primitives directly Worked in 2005 to integrate XMJVM into NeXtMidas and to have primitives run in a single JVM

Unclassified/FOUO XMNXM (Continued) What is it? – C code provides access into the X-Midas global sections – Java Native Interface (JNI) code provides NeXtMidas/Java with access to the C wrappers

Unclassified/FOUO XMNXM - Capabilites Java primitives can: – Read/write results from/to the X-Midas results table – Share AUX list A little tricky since NeXtMidas supports AUX.NAME but X-Midas only does AUX. – Imports initial X-Midas options Can have NeXtMidas options that X-Midas can not see – Read/write X-Midas pipes

Unclassified/FOUO XMNXM vs Porting to FORTRAN or C What you get: – No changes to the Java code – Access to Java graphics (Imagery) – Can run NeXtMidas macros – Can use NeXtMidas tables from an X-Midas macro – The Java primitives can run in independent threads Limitations – Usual X-Midas macro limits Blocking control sections, numeric Ids, file name case- insensitivity,… For example, X-Midas switches uppercase quoted names..nothing we can do about this

Unclassified/FOUO XMNXM – Support X-Midas –Version Compilers –Fortran (for the host primitives) –C (for the Java Native Interface, JNI) –Java (for NeXtMidas) htm#Requirements

Unclassified/FOUO XMNXM – Usage Building – Use $NMROOT/nxm/sys (NXM) as any other X-Midas option tree Running startmacro... nm/on/bg ! Start the JVM xpipe/setup on... ! Run some NeXtMidas commands nm plot nxm.sys.dat.world... xpipe off nm/off ! Stop the JVM endmacro NOTE: All X-Midas switches (/ID, /XS,...) are applied to the nm command not to the NeXtMidas primitive

Unclassified/FOUO Demos XGEO.TXT –Replacing XGEOPLOT with PLOT SD360 –With XBC in front of SYS uses FORTRAN waveform command

Unclassified/FOUO BACKUP XGEO.TXT – code snippet if /NM GT 0 then nm/on/bg endif xcntrl on if /NM GT 0 then nm shellgui nm/xs=^geopid plot setup=/midas/mapdata/map_setup.tbl else XGEOPLOT/xs=geopid/noexit=2/mtag=(x:mrklon,y:mrklat) " " SITE " " endif XPLOT/xs=prepid/noexit=2/icon/stay/xlab=4/mtag=x:mrktime/xcnt=2 xcntrl off if /NM GT 0 then nm/off endif