Top Banner
Research Seminar Research Seminar Robert van Engelen Robert van Engelen Computer Science & Computer Science & CSIT CSIT Florida State Florida State University University
25

Research Seminar

Mar 19, 2016

Download

Documents

Aletha

Research Seminar. Robert van Engelen Computer Science & CSIT Florida State University. Research Projects. Restructuring compiler analysis and transformation Compilation techniques for embedded systems Web and Grid services technologies Bioinformatics and life sciences - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Research Seminar

Research SeminarResearch Seminar

Robert van EngelenRobert van Engelen

Computer Science & CSITComputer Science & CSITFlorida State UniversityFlorida State University

Page 2: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 22

Restructuring compiler Restructuring compiler analysis and transformationanalysis and transformation

Compilation techniques for Compilation techniques for embedded systemsembedded systems

Web and Grid services Web and Grid services technologiestechnologies

Bioinformatics and life Bioinformatics and life sciencessciences

Atmospheric and Atmospheric and oceanographic sciencesoceanographic sciences

Research ProjectsResearch Projects

Page 3: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 33

Current Funding SupportCurrent Funding Support

Improving Symbolic Analysisof Restructuring Compilers

DOE Early Career PI Program(Compilers & Algorithms for High-Performance

Computing, Networking, and Data Management)

Automatic Validation of Code ImprovingTransformations and Related Applications

(with Dr. Whalley)

Collaborative Research in Compilers(with Dr. Whalley)

Page 4: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 44

Research AssistantsResearch Assistants Chris BakerChris Baker (for MS) collab. with Dr. Gallivan (for MS) collab. with Dr. Gallivan

Compiler technology & numerical algorithmsCompiler technology & numerical algorithms Johnnie BirchJohnnie Birch (for MS & PhD) (for MS & PhD)

Compiler analysis techniquesCompiler analysis techniques Burt WalshBurt Walsh (for PhD) (for PhD)

Compiler & embedded systems technologyCompiler & embedded systems technology Yixin ShouYixin Shou (for PhD) (for PhD)

Compiler technologyCompiler technology Open position (for PhD)Open position (for PhD)

Web and grid services technologiesWeb and grid services technologies

Page 5: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 55

Web and Grid ServicesWeb and Grid Services Web and Grid servicesWeb and Grid services are remote are remote

applications, e.g. on the Web, that provide applications, e.g. on the Web, that provide various data, document, and compute various data, document, and compute resources to client applicationsresources to client applications

Web/Grid service technology is a big step Web/Grid service technology is a big step forwards in distributed computing on the forwards in distributed computing on the InternetInternet

Bridges platform and Bridges platform and language interop gapslanguage interop gaps

Page 6: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 66

Web/Grid Service ProtocolsWeb/Grid Service Protocols Web/Grid services technologies utilize the Web/Grid services technologies utilize the

SOAP and WSDL protocolsSOAP and WSDL protocols SOAPSOAP (Simple Object Access Protocol) is (Simple Object Access Protocol) is

a light-weight protocol based on XML as a light-weight protocol based on XML as the marshalling format for request and the marshalling format for request and response messages, typically with HTTPresponse messages, typically with HTTP

WSDLWSDL is an XML-based Web/Grid is an XML-based Web/Grid services description languageservices description language

Page 7: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 77

WSDLWSDL1.1. A Web Service A Web Service

registers its registers its existence in a existence in a registryregistry

2.2. The Web Service The Web Service publishes its WSDL publishes its WSDL in the registryin the registry

3.3. SOAP remote SOAP remote procedure calling by procedure calling by clients developed clients developed from this WSDLfrom this WSDL

Page 8: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 88

gSOAP Web ServicesgSOAP Web Services SOAP/XML language binding for C & C++SOAP/XML language binding for C & C++

SOAP/XML capabilities build into the C and SOAP/XML capabilities build into the C and C++ languageC++ language

Uses compiler technologyUses compiler technology Based on RPC compilerBased on RPC compiler No need to write any wrapper codeNo need to write any wrapper code

Generates SOAP/XML parsing routinesGenerates SOAP/XML parsing routines(no DOM or SAX parser required)(no DOM or SAX parser required)

Page 9: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 99

gSOAP Web ServicesgSOAP Web Services gSOAP is open source (SourceForge gSOAP is open source (SourceForge

project) project) (C/C++, Java)(C/C++, Java)

Platform independent Platform independent (now with automake/conf)(now with automake/conf)

Integrated TCP/IP, HTTP, DIME, SOAP, Integrated TCP/IP, HTTP, DIME, SOAP, and XML stacksand XML stacks

Designed for high-performance throughputDesigned for high-performance throughput

Page 10: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1010

gSOAP FeaturesgSOAP Features SOAP 1.1 and 1.2 compliantSOAP 1.1 and 1.2 compliant WSDL 1.1 import and exportWSDL 1.1 import and export Stand-alone servers (HTTP 1.0 and partially 1.1)Stand-alone servers (HTTP 1.0 and partially 1.1)

Supports keep-alive and chunked transfersSupports keep-alive and chunked transfers CGI, Fast-CGI, Apache_mod, IISCGI, Fast-CGI, Apache_mod, IIS DIME attachmentsDIME attachments Supports pure C or C/C++ application mixSupports pure C or C/C++ application mix Multi-threaded Web services, MT safeMulti-threaded Web services, MT safe ExtensibleExtensible

Plug-ins, callbacks, and user-defined (de)serializersPlug-ins, callbacks, and user-defined (de)serializers

Page 11: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1111

gSOAP Users in IndustrygSOAP Users in Industry Adobe Systems Adobe Systems (eg. GoLive Web site development software)(eg. GoLive Web site development software)

IBM AlphaworksIBM Alphaworks XeroxXerox CoreNetworksCoreNetworks PowerllelPowerllel SiemensSiemens EricssonEricsson Globus toolkit Globus toolkit (DOE, Argonne National Labs)(DOE, Argonne National Labs)

Harness toolkit Harness toolkit (DOE)(DOE)

……

Page 12: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1212

Native C & C++ ApplicationCode to Serve Requests

(RPC Parameter Marshalling is Fully Automatic)

libgsoap.agSOAP Runtime Environment(Memory & I/O Management)

Web Service Application

Implementing a Web Service Implementing a Web Service ApplicationApplication

myService.hSpecification of

Remote Proceduresand Parameter Types

gSOAP RPCCompiler

myService.wsdl

soapService.c soapC.cRPC Skeleton Routines and

XML Parsers/Generators

Publish WSDL

Page 13: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1313

Native C & C++ ApplicationCodes with SOAP RPC Calls(RPC Calls and Parameter

Marshalling are Automatic)

Client Application

libgsoap.agSOAP Runtime Environment(Memory & I/O Management)

Implementing a Client Implementing a Client ApplicationApplication

someService.wsdl

gSOAP WSDLimporter

WSDL Publication

soapClient.c soapC.cRPC Stub Routines and

XML Parsers/GeneratorsgSOAP RPC

Compiler

someService.hSpecification of

Remote Proceduresand Parameter Types

Page 14: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1414

SOAP RPC MarshallingSOAP RPC Marshalling

struct BG{ int val; struct BG *left; struct BG *right;};

<BG> <val>1</val> <left> <val>2</val> <right href=“#X”/> </left> <right href=“#X”/></BG><id id=“X”> <val>3</val> <right href=“#X”/></id>

1

2

3

int remoteMethod(struct BG input, struct BG *output);

Page 15: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1515

SOAP RPC DemarshallingSOAP RPC Demarshalling

1

2

3

<BG> <val>1</val> <left> <val>2</val>

</left> <right href=“#X”/></BG><id id=“X”> <val>3</val> <right href=“#X”/></id>

<right href=“#X”/>

Page 16: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1616

Application to Life SciencesApplication to Life Sciences Determine the “Tree of Life” from Determine the “Tree of Life” from

sequenced genome datasequenced genome data Serialize and deserialize phylogenetic Serialize and deserialize phylogenetic

trees in XMLtrees in XML Massive parallel computationsMassive parallel computations

Cluster of workstationsCluster of workstations

SOAP/XML

Page 17: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1717

Results Results

1)1) Interoperability TestingInteroperability Testing2)2) Legacy C Code Web Service IntegrationLegacy C Code Web Service Integration3)3) Scalability and PerformanceScalability and Performance

Page 18: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1818

Interoperability TestingInteroperability Testing

WhiteMesa.org WhiteMesa.org ““interop lab”interop lab”

Suite of test Suite of test cases designed cases designed for real-time for real-time interoperability interoperability testingtesting

Interop with: Interop with: Apache Apache Axis, .NET, Axis, .NET, Delphi,…Delphi,…

String Integer Float Struct String Array

Integer Array

Float Array

Struct Array Void Base64 Date Hex

Binary Decimal Boolean Map Map Array

gSOAP PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS SOAP::Lite PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS FAULT Apache 2.2 PASS PASS PASS PASS FAULT PASS FAULT FAULT PASS PASS PASS PASS PASS PASS PASS PASS Apache Axis PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS FAIL FAULT PASS PASS PASS PASS ASP .NET PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS PASS FAULT PASS PASS N/A N/A Cape Connect PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A

Delphi PASS PASS PASS PASS FAIL PASS PASS FAULT PASS PASS PASS PASS PASS PASS N/A N/A easySOAP++ PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A eSOAP PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS PASS PASS PASS PASS N/A N/A Frontier PASS PASS PASS PASS FAULT FAULT FAULT FAULT PASS PASS FAIL FAULT FAULT FAULT N/A N/A GLUE PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS FAIL PASS PASS PASS N/A N/A MS SOAP 3.0 PASS PASS PASS PASS FAULT PASS FAULT FAULT PASS PASS FAIL PASS PASS PASS N/A N/A

nuSOAP PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS PASS PASS PASS PASS FAULT FAULT OpenLink Virtuoso PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS PASS PASS PASS PASS N/A N/A

PEAR SOAP PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS FAULT PASS FAIL PASS FAULT FAULT SOAP4R PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS Spheon jSOAP PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS

Spray PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A SQLData PASS PASS PASS PASS PASS PASS FAULT FAULT PASS PASS PASS PASS PASS PASS N/A N/A WASP Adv. PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A White Mesa PASS PASS PASS PASS FAULT PASS FAULT PASS PASS PASS PASS PASS PASS PASS N/A N/A XMLBus PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A 4S4C 2.0 PASS PASS PASS PASS PASS PASS FAULT PASS PASS PASS FAULT FAULT PASS PASS N/A N/A

Page 19: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 1919

Legacy C Code Integration: Legacy C Code Integration: Linear System Solver ServiceLinear System Solver ServiceLU decomposition from “LU decomposition from “Numerical Recipes in C”Numerical Recipes in C”:: ludcmpludcmp((double **adouble **a, , int nint n, , int *indxint *indx, double *d);, double *d);

Service routine (array size n stored in structs for vectors and matrices)ludcmp /**** ludcmp request ****/( struct mat *a, /* input: matrix */ struct ludcmpResponse /**** ludcmp response ****/ { struct mat *a; /* output: matrix (decomposed) */ struct ivec *indx; /* output: reordering vector */ double *d; /* output: arg for determinant */ } *result );

Struct declarations:struct vec /**** vector ****/{ double *__ptr; /* pointer to array of double */ int __size; }; /* run-time array size */

struct mat /**** matrix ****/{ struct vec *__ptr; /* pointer to array of vectors */ int __size; }; /* run-time array size */

Page 20: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 2020

Linear System Solver ServiceLinear System Solver ServiceLinear system solver service (LSSS) code (CGI-based):Linear system solver service (LSSS) code (CGI-based):

main()main(){ soap_serve(soap_new()); /* process request */{ soap_serve(soap_new()); /* process request */}}

Example LSSS client application code:main(){ struct soap soap; /* runtime environment */ struct mat a; /* input matrix */ struct ludcmpResponse result; /* result output */ … soap_init(&soap); /* init runtime */ if (soap_call_ns__ludcmp(&soap, “URL”, “”, &a, &result)) soap_print_fault(&soap, stderr); … … = result.a.__ptr[i]->__ptr[j]; /* index a[i,j] */}

Page 21: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 2121

Scalability and PerformanceScalability and Performance1)1) Scalability and overhead of Scalability and overhead of

communication vs. computationcommunication vs. computation LU-based double fp. matrix inversionLU-based double fp. matrix inversion

2)2) Performance (send 32bit int matrix)Performance (send 32bit int matrix) Full SOAP XML-encoded int32 matrixFull SOAP XML-encoded int32 matrix SOAP Base64-encoded int32 matrixSOAP Base64-encoded int32 matrix CGI-based SOAP Web ServiceCGI-based SOAP Web Service Stand-alone SOAP Web ServiceStand-alone SOAP Web Service Java RMIJava RMI

Page 22: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 2222

Communication Overhead: Communication Overhead: Matrix InversionMatrix Inversion

Stand-alone linear Stand-alone linear system solver system solver serviceservice

Full double fp. Full double fp. Matrix Matrix representation in representation in SOAP XMLSOAP XML

Total time of client Total time of client request and server request and server response response (100BaseT, Dual (100BaseT, Dual PIII 550MHz, Red PIII 550MHz, Red Hat Linux)Hat Linux)

Page 23: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 2323

Full XML Versus Base64 Full XML Versus Base64 int32 Matrix Representationsint32 Matrix Representations

Total time of client Total time of client request and server request and server response response (100BaseT, Dual (100BaseT, Dual PIII 550MHz, Red PIII 550MHz, Red Hat Linux)Hat Linux)

SOAP XML-SOAP XML-encoded 32bit int encoded 32bit int matrixmatrix

SOAP Base64-SOAP Base64-encoded 32bit int encoded 32bit int matrixmatrix

Page 24: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 2424

XML vs. Base64 vs. Java RMI XML vs. Base64 vs. Java RMI with Stand-Alone Servicewith Stand-Alone Service

Total time of client Total time of client request and server request and server response response (100BaseT, Dual (100BaseT, Dual PIII 550MHz, Red PIII 550MHz, Red Hat Linux)Hat Linux)

SOAP XML-SOAP XML-encoded 32bit int encoded 32bit int matrixmatrix

SOAP Base64-SOAP Base64-encoded 32bit int encoded 32bit int matrixmatrix

Java RMI (1.2.2)Java RMI (1.2.2)

Page 25: Research Seminar

Research, Nov 4, 2002Research, Nov 4, 2002 2525

Questions?Questions?