Presentation is loading. Please wait.

Presentation is loading. Please wait.

Research Seminar Robert van Engelen Computer Science & CSIT Florida State University.

Similar presentations


Presentation on theme: "Research Seminar Robert van Engelen Computer Science & CSIT Florida State University."— Presentation transcript:

1 Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

2 Research, Nov 4, 20022  Restructuring compiler analysis and transformation  Compilation techniques for embedded systems  Web and Grid services technologies  Bioinformatics and life sciences  Atmospheric and oceanographic sciences Research Projects

3 Research, Nov 4, 20023 Current Funding Support Improving Symbolic Analysis of Restructuring Compilers DOE Early Career PI Program (Compilers & Algorithms for High-Performance Computing, Networking, and Data Management) Automatic Validation of Code Improving Transformations and Related Applications (with Dr. Whalley) Collaborative Research in Compilers (with Dr. Whalley)

4 Research, Nov 4, 20024 Research Assistants  Chris Baker (for MS) collab. with Dr. Gallivan  Compiler technology & numerical algorithms  Johnnie Birch (for MS & PhD)  Compiler analysis techniques  Burt Walsh (for PhD)  Compiler & embedded systems technology  Yixin Shou (for PhD)  Compiler technology  Open position (for PhD)  Web and grid services technologies

5 Research, Nov 4, 20025 Web and Grid Services  Web and Grid services are remote applications, e.g. on the Web, that provide various data, document, and compute resources to client applications  Web/Grid service technology is a big step forwards in distributed computing on the Internet  Bridges platform and language interop gaps

6 Research, Nov 4, 20026 Web/Grid Service Protocols  Web/Grid services technologies utilize the SOAP and WSDL protocols  SOAP (Simple Object Access Protocol) is a light-weight protocol based on XML as the marshalling format for request and response messages, typically with HTTP  WSDL is an XML-based Web/Grid services description language

7 Research, Nov 4, 20027 WSDL 1. A Web Service registers its existence in a registry 2. The Web Service publishes its WSDL in the registry 3. SOAP remote procedure calling by clients developed from this WSDL

8 Research, Nov 4, 20028 gSOAP Web Services  SOAP/XML language binding for C & C++  SOAP/XML capabilities build into the C and C++ language  Uses compiler technology  Based on RPC compiler  No need to write any wrapper code  Generates SOAP/XML parsing routines (no DOM or SAX parser required)

9 Research, Nov 4, 20029 gSOAP Web Services  gSOAP is open source (SourceForge project) (C/C++, Java)  Platform independent (now with automake/conf)  Integrated TCP/IP, HTTP, DIME, SOAP, and XML stacks  Designed for high-performance throughput

10 Research, Nov 4, 200210 gSOAP Features  SOAP 1.1 and 1.2 compliant  WSDL 1.1 import and export  Stand-alone servers (HTTP 1.0 and partially 1.1)  Supports keep-alive and chunked transfers  CGI, Fast-CGI, Apache_mod, IIS  DIME attachments  Supports pure C or C/C++ application mix  Multi-threaded Web services, MT safe  Extensible  Plug-ins, callbacks, and user-defined (de)serializers

11 Research, Nov 4, 200211 gSOAP Users in Industry  Adobe Systems (eg. GoLive Web site development software)  IBM Alphaworks  Xerox  CoreNetworks  Powerllel  Siemens  Ericsson  Globus toolkit (DOE, Argonne National Labs)  Harness toolkit (DOE)  …

12 Research, Nov 4, 200212 Native C & C++ Application Code to Serve Requests (RPC Parameter Marshalling is Fully Automatic) libgsoap.a gSOAP Runtime Environment (Memory & I/O Management) Web Service Application Implementing a Web Service Application myService.h Specification of Remote Procedures and Parameter Types gSOAP RPC Compiler myService.wsdl soapService.c soapC.c RPC Skeleton Routines and XML Parsers/Generators Publish WSDL

13 Research, Nov 4, 200213 Native C & C++ Application Codes with SOAP RPC Calls (RPC Calls and Parameter Marshalling are Automatic) Client Application libgsoap.a gSOAP Runtime Environment (Memory & I/O Management) Implementing a Client Application someService.wsdl gSOAP WSDL importer WSDL Publication soapClient.c soapC.c RPC Stub Routines and XML Parsers/Generators gSOAP RPC Compiler someService.h Specification of Remote Procedures and Parameter Types

14 Research, Nov 4, 200214 SOAP RPC Marshalling struct BG { int val; struct BG *left; struct BG *right; }; 1 2 3 1 2 3 int remoteMethod(struct BG input, struct BG *output);

15 Research, Nov 4, 200215 SOAP RPC Demarshalling 1 23 1 2 3

16 Research, Nov 4, 200216 Application to Life Sciences  Determine the “Tree of Life” from sequenced genome data  Serialize and deserialize phylogenetic trees in XML  Massive parallel computations  Cluster of workstations SOAP/XML

17 Research, Nov 4, 200217 Results 1)Interoperability Testing 2)Legacy C Code Web Service Integration 3)Scalability and Performance

18 Research, Nov 4, 200218 Interoperability Testing  WhiteMesa.org “interop lab”  Suite of test cases designed for real-time interoperability testing  Interop with: Apache Axis,.NET, Delphi,…

19 Research, Nov 4, 200219 Legacy C Code Integration: Linear System Solver Service LU decomposition from “Numerical Recipes in C”: ludcmp(double **a, int n, int *indx, double *d); ludcmp(double **a, int n, int *indx, 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 */

20 Research, Nov 4, 200220 Linear System Solver Service Linear system solver service (LSSS) code (CGI-based): main() { 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] */ }

21 Research, Nov 4, 200221 Scalability and Performance 1)Scalability and overhead of communication vs. computation  LU-based double fp. matrix inversion 2)Performance (send 32bit int matrix)  Full SOAP XML-encoded int32 matrix  SOAP Base64-encoded int32 matrix  CGI-based SOAP Web Service  Stand-alone SOAP Web Service  Java RMI

22 Research, Nov 4, 200222 Communication Overhead: Matrix Inversion  Stand-alone linear system solver service  Full double fp. Matrix representation in SOAP XML  Total time of client request and server response (100BaseT, Dual PIII 550MHz, Red Hat Linux)

23 Research, Nov 4, 200223 Full XML Versus Base64 int32 Matrix Representations  Total time of client request and server response (100BaseT, Dual PIII 550MHz, Red Hat Linux)  SOAP XML- encoded 32bit int matrix  SOAP Base64- encoded 32bit int matrix

24 Research, Nov 4, 200224 XML vs. Base64 vs. Java RMI with Stand-Alone Service  Total time of client request and server response (100BaseT, Dual PIII 550MHz, Red Hat Linux)  SOAP XML- encoded 32bit int matrix  SOAP Base64- encoded 32bit int matrix  Java RMI (1.2.2)

25 Research, Nov 4, 200225 Questions?


Download ppt "Research Seminar Robert van Engelen Computer Science & CSIT Florida State University."

Similar presentations


Ads by Google