Spelling suggestions: "subject:"java native interface"" "subject:"lava native interface""
1 |
Design and Implementation of Java Virtual MachineMandal, Abhijit 06 1900 (has links)
Interpretation of Java bytecode results in slow execution of program.First version of Java Virtual Machine(JVM) implementation was relied
on interpretation techniques. On the other hand performance can be improved by translating the Java bytecode into machine code by a Just-In-Time(JIT) compiler and this technique is being integrated into most JVM implementations.
Java is an automatic garbage collected language, freeing the programmer from the explicit memory management. Garbage collection "pause" time can
be reduced by using a generational garbage collection.
This thesis describes an implementation of a JVM. The specific contributions made in this thesis include: development of a Just-In-Time(JIT) compiler using DAG construction technique, a bytecode interpreter, a generational
garbage collector. Our implementation can execute Java bytecode either by an interpreter or the bytecode can be translated into machine code
using the JIT compiler and the translated code is directly executed by the processor. We have implemented the Java Native Interface (JNI) to enable using C and assembly language programs with Java.
|
2 |
Building Matlab Standalone Package from Java for Differential Dependence Network Analysis Bioinformatics ToolkitJin, Lu 06 July 2010 (has links)
This thesis reports a software development effort to transplant Matlab algorithm into a Matlab license-free, platform dependent Java based software. The result is almost equivalent to a direct translation of Matlab source codes into Java or any other programming languages. Since compiled library is platform dependent, an MCR (Matlab Compiler Runtime environment) is required and has been developed to deploy the transplanted algorithm to end user. As the result, the implemented MCR is free to distribution and the streamline transplantation process is much simpler and more reliable than manually translation work. In addition, the implementation methodology reported here can be reused for other similar software engineering tasks.
There are mainly 4 construction steps in our software package development. First, all Matlab *.m files or *.mex files associated with the algorithms of interest (to be transplanted) are gathered, and the corresponding shared library is created by the Matlab Compiler. Second, a Java driver is created that will serve as the final user interface. This Java based user interface will take care of all the input and output of the original Matlab algorithm, and prepare all native methods. Third, assisted by JNI, a C driver is implemented to manage the variable transfer between Matlab and Java. Lastly, Matlab mbuild function is used to compile the C driver and aforementioned shared library into a dependent library, ready to be called from the standalone Java interface.
We use a caBIG™ (Cancer Biomedical Informatics Grid) data analytic toolkit, namely, the DDN (differential dependence network) algorithm as the testbed in the software development. The developed DDN standalone package can be used on any Matlab-supported platform with Java GUI (Graphic User Interface) or command line parameter. As a caBIG™ toolkit, the DDN package can be integrated into other information systems such as Taverna or G-DOC. The major benefits provided by the proposed methodology can be summarized as follows. First, the proposed software development framework offers a simple and effective way for algorithm developer to provide novel bioinformatics tools to the biomedical end-users, where the frequent obstacle is the lack of language-specific software runtime environment and incompatibility between the compiled software and available computer platforms at user's sites. Second, the proposed software development framework offers software developer a significant time/effort-saving method for translating code between different programming languages, where the majority of software developer's time/effort is spent on understanding the specific analytic algorithm and its language-specific codes rather than developing efficient and platform/user-friendly software. Third, the proposed methodology allows software engineers to focus their effort on the quality of software rather than the details of original source codes, where the only required information is the inputs and outputs of the algorithm. Specifically, all used variables and functions are mapped between Matlab, C and Java, handled solely by our designated C driver. / Master of Science
|
3 |
Web-based interface for scientific computationsHuang, Xiuqiong 01 April 2001 (has links)
No description available.
|
4 |
A Java Founded LOIS-framework and the Message Passing Interface? : An Exploratory Case StudyStrand, Christian January 2006 (has links)
<p>In this thesis project we have successfully added an MPI extension layer to the LOIS framework. The framework defines an infrastructure for executing and connecting continuous stream processing applications. The MPI extension provides the same amount of stream based data as the framework’s original transport. We assert that an MPI-2 compatible implementation can be a candidate to extend the given framework with an adaptive and flexible communication sub-system. Adaptability is required since the communication subsystem has to be resilient to changes, either due to optimizations or system requirements.</p>
|
5 |
A Java Founded LOIS-framework and the Message Passing Interface? : An Exploratory Case StudyStrand, Christian January 2006 (has links)
In this thesis project we have successfully added an MPI extension layer to the LOIS framework. The framework defines an infrastructure for executing and connecting continuous stream processing applications. The MPI extension provides the same amount of stream based data as the framework’s original transport. We assert that an MPI-2 compatible implementation can be a candidate to extend the given framework with an adaptive and flexible communication sub-system. Adaptability is required since the communication subsystem has to be resilient to changes, either due to optimizations or system requirements.
|
6 |
Comparing Android Runtime with native : Fast Fourier Transform on Android / Jämförelse av Android Runtime och native : Fast Fourier Transform på AndroidDanielsson, André January 2017 (has links)
This thesis investigates the performance differences between Java code compiled by Android Runtime and C++ code compiled by Clang on Android. For testing the differences, the Fast Fourier Transform (FFT) algorithm was chosen to demonstrate examples of when it is relevant to have high performance computing on a mobile device. Different aspects that could affect the execution time of a program were examined. One test measured the overhead related to the Java Native Interface (JNI). The results showed that the overhead was insignificant for FFT sizes larger than 64. Another test compared matching implementations of FFTs between Java and native code. The conclusion drawn from this test was that, of the converted algorithms, Columbia Iterative FFT performed the best in both Java and C++. A third test, evaluating the performance of vectorization, proved to be an efficient option for native optimization. Finally, tests examining the effect of using single-point precision (float) versus double-point precision (double) data types were covered. Choosing float could improve performance by using the cache in an efficient manner. / I denna studie undersöktes prestandaskillnader mellan Java-kod kompilerad av Android Runtime och C++-kod kompilerad av Clang på Android. En snabb Fourier Transform (FFT) användes under experimenten för att visa vilka användningsområden som kräver hög prestanda på en mobil enhet. Olika påverkande aspekter vid användningen av en FFT undersöktes. Ett test undersökte hur mycket påverkan Java Native Interface (JNI) hade på ett program i helhet. Resultaten från dessa tester visade att påverkan inte var signifikant för FFT-storlekar större än 64. Ett annat test undersökte prestandaskillnader mellan FFT-algoritmer översatta från Java till C++. Slutsatsen kring dessa tester var att av de översatta algoritmerna var Columbia Iterative FFT den som presterade bäst, både i Java och i C++. Vektorisering visade sig vara en effektiv optimeringsteknik för arkitekturspecifik kod skriven i C++. Slutligen utfördes tester som undersökte prestandaskillnader mellan flyttalsprecision för datatyperna float och double. float kunde förbättra prestandan genom att på ett effektivt sätt utnyttja processorns cache.
|
7 |
Language and tool support for multilingual programsLee, Byeongcheol 12 October 2011 (has links)
Programmers compose programs in multiple languages to combine the
advantages of innovations in new high-level programming languages with
decades of engineering effort in legacy libraries and systems. For
language inter-operation, language designers provide two classes of
multilingual programming interfaces: (1) foreign function interfaces
and (2) code generation interfaces. These interfaces embody the
semantic mismatch for developers and multilingual systems
builders. Their programming rules are difficult or impossible to
verify. As a direct consequence, multilingual programs are full of
bugs at interface boundaries, and debuggers cannot assist developers
across these lines.
This dissertation shows how to use composition of single language
systems and interposition to improve the safety of multilingual
programs. Our compositional approach is scalable by construction
because it does not require any changes to single-language systems,
and it leverages their engineering efforts. We show it is effective by
composing a variety of multilingual tools that help programmers
eliminate bugs. We present the first concise taxonomy and formal
description of multilingual programming interfaces and their
programming rules. We next compose three classes of multilingual
tools: (1) Dynamic bug checkers for foreign function interfaces. We
demonstrate a new approach for automatically generating a dynamic bug
checker by interposing on foreign function interfaces, and we show
that it finds bugs in real-world applications including Eclipse,
Subversion, and Java Gnome. (2) Multilingual debuggers for foreign
function interfaces. We introduce an intermediate agent that wraps all
the methods and functions at language boundaries. This intermediate
agent is sufficient to build all the essential debugging features used
in single-language debuggers. (3) Safe macros for code generation
interfaces. We design a safe macro language, called Marco, that
generates programs in any language and demonstrate it by implementing
checkers for SQL and C++ generators. To check the correctness of the
generated programs, Marco queries single-language compilers and
interpreters through code generation interfaces. Using their error
messages, Marco points out the errors in program generators.
In summary, this dissertation presents the first concise taxonomy and
formal specification of multilingual interfaces and, based on this
taxonomy, shows how to compose multilingual tools to improve safety
in multilingual programs. Our results show that our compositional
approach is scalable and effective for improving safety in real-world
multilingual programs. / text
|
Page generated in 0.1114 seconds