386 research outputs found

    Increasing the Performance and Predictability of the Code Execution on an Embedded Java Platform

    Get PDF
    This thesis explores the execution of object-oriented code on an embedded Java platform. It presents established and derives new approaches for the implementation of high-level object-oriented functionality and commonly expected system services. The goal of the developed techniques is the provision of the architectural base for an efficient and predictable code execution. The research vehicle of this thesis is the Java-programmed SHAP platform. It consists of its platform tool chain and the highly-customizable SHAP bytecode processor. SHAP offers a fully operational embedded CLDC environment, in which the proposed techniques have been implemented, verified, and evaluated. Two strands are followed to achieve the goal of this thesis. First of all, the sequential execution of bytecode is optimized through a joint effort of an optimizing offline linker and an on-chip application loader. Additionally, SHAP pioneers a reference coloring mechanism, which enables a constant-time interface method dispatch that need not be backed a large sparse dispatch table. Secondly, this thesis explores the implementation of essential system services within designated concurrent hardware modules. This effort is necessary to decouple the computational progress of the user application from the interference induced by time-sharing software implementations of these services. The concrete contributions comprise a spill-free, on-chip stack; a predictable method cache; and a concurrent garbage collection. Each approached means is described and evaluated after the relevant state of the art has been reviewed. This review is not limited to preceding small embedded approaches but also includes techniques that have proven successful on larger-scale platforms. The other way around, the chances that these platforms may benefit from the techniques developed for SHAP are discussed

    The parallel event loop model and runtime: a parallel programming model and runtime system for safe event-based parallel programming

    Get PDF
    Recent trends in programming models for server-side development have shown an increasing popularity of event-based single- threaded programming models based on the combination of dynamic languages such as JavaScript and event-based runtime systems for asynchronous I/O management such as Node.JS. Reasons for the success of such models are the simplicity of the single-threaded event-based programming model as well as the growing popularity of the Cloud as a deployment platform for Web applications. Unfortunately, the popularity of single-threaded models comes at the price of performance and scalability, as single-threaded event-based models present limitations when parallel processing is needed, and traditional approaches to concurrency such as threads and locks don't play well with event-based systems. This dissertation proposes a programming model and a runtime system to overcome such limitations by enabling single-threaded event-based applications with support for speculative parallel execution. The model, called Parallel Event Loop, has the goal of bringing parallel execution to the domain of single-threaded event-based programming without relaxing the main characteristics of the single-threaded model, and therefore providing developers with the impression of a safe, single-threaded, runtime. Rather than supporting only pure single-threaded programming, however, the parallel event loop can also be used to derive safe, high-level, parallel programming models characterized by a strong compatibility with single-threaded runtimes. We describe three distinct implementations of speculative runtimes enabling the parallel execution of event-based applications. The first implementation we describe is a pessimistic runtime system based on locks to implement speculative parallelization. The second and the third implementations are based on two distinct optimistic runtimes using software transactional memory. Each of the implementations supports the parallelization of applications written using an asynchronous single-threaded programming style, and each of them enables applications to benefit from parallel execution

    Application of Modern Fortran to Spacecraft Trajectory Design and Optimization

    Get PDF
    In this paper, applications of the modern Fortran programming language to the field of spacecraft trajectory optimization and design are examined. Modern object-oriented Fortran has many advantages for scientific programming, although many legacy Fortran aerospace codes have not been upgraded to use the newer standards (or have been rewritten in other languages perceived to be more modern). NASA's Copernicus spacecraft trajectory optimization program, originally a combination of Fortran 77 and Fortran 95, has attempted to keep up with modern standards and makes significant use of the new language features. Various algorithms and methods are presented from trajectory tools such as Copernicus, as well as modern Fortran open source libraries and other projects

    Integrated vehicle dispatching for container terminal

    Get PDF
    Ph.DDOCTOR OF PHILOSOPH

    The parallel event loop model and runtime: a parallel programming model and runtime system for safe event-based parallel programming

    Get PDF
    Recent trends in programming models for server-side development have shown an increasing popularity of event-based single- threaded programming models based on the combination of dynamic languages such as JavaScript and event-based runtime systems for asynchronous I/O management such as Node.JS. Reasons for the success of such models are the simplicity of the single-threaded event-based programming model as well as the growing popularity of the Cloud as a deployment platform for Web applications. Unfortunately, the popularity of single-threaded models comes at the price of performance and scalability, as single-threaded event-based models present limitations when parallel processing is needed, and traditional approaches to concurrency such as threads and locks don't play well with event-based systems. This dissertation proposes a programming model and a runtime system to overcome such limitations by enabling single-threaded event-based applications with support for speculative parallel execution. The model, called Parallel Event Loop, has the goal of bringing parallel execution to the domain of single-threaded event-based programming without relaxing the main characteristics of the single-threaded model, and therefore providing developers with the impression of a safe, single-threaded, runtime. Rather than supporting only pure single-threaded programming, however, the parallel event loop can also be used to derive safe, high-level, parallel programming models characterized by a strong compatibility with single-threaded runtimes. We describe three distinct implementations of speculative runtimes enabling the parallel execution of event-based applications. The first implementation we describe is a pessimistic runtime system based on locks to implement speculative parallelization. The second and the third implementations are based on two distinct optimistic runtimes using software transactional memory. Each of the implementations supports the parallelization of applications written using an asynchronous single-threaded programming style, and each of them enables applications to benefit from parallel execution

    Spreadsheet-based GIS Models

    Get PDF
    Geographic Information Systems (GIS), which are computer-based systems that allow decision makers to incorporate geographically based data into their analyses, are widespread and powerful tools in many business and scientific settings today. In this paper, we present a tutorial discussing ways in which GIS functionality can be implemented within the spreadsheet environment. We show the straightforward and natural analogy between several GIS functions with spreadsheet functions, particularly for raster based data. We present two realistic examples meshing OR/MS methods with GIS methods --- an integration which is greatly enhanced by the “remarkable development platform” provided by spreadsheets. We discuss the many benefits of the spreadsheet enabled seamless integration of geographical data, analysis, and display

    An approach to user-directed search in interactive problem solving

    No full text
    This thesis studies some problems which are important in establishing interactive problem solving systems. An interactive problem solving system is characterized by the intensive interaction between the user and the system. In order to converge on a solution which satisfies the user, we present a new problem solving scheme - user-directed search (UDS) - where the solution search is directed in a step-by-step manner by the user. Because of its wide applicability, UDS can be very useful for many practic~l cases. The user-directed problem solving is realized by introducing a particular communication mechanism between the user and the system. This enables a user to guide the solution searching in his most preferred directions. Thus the system can first explore the solutions which are more likely to match the user-desired solution. We have developed UDS using two different approaches. In the first approach, additional deduction rules can be created upon the user's request and/or upon changes in practical environments. For this purpose, we have created, in the user interface, an environment which enables a user to add his new requirements in the form of deduction rules. To improve efficiency, we have used a particular backjump search which can first find, and then backjump to, the point which contradicts the user's new requirements. To establish the dependency for this backjumping, we have used assumption-based truth maintenance systems (ATMS) and KEEworlds in the knowledge engineering environment(KEE). In the second approach, we have introduced particular variable groups. In this approach, the user's new requirements are introduced through a scheme in which the user divides the variable set into several different variable groups. By dividing these variable groups according to his choice, a user can effectively control and instruct the search during the process of problem solving. We have introduced here a scheme which we call proximal minimum (closeness) change. The proximal minimum change ensures that, in the direction specified by the user, a closest solution to the previous one will be found if it actually exists. In another aspect, in order to improve efficiency of solution search on a general basis, we have applied some techniques from Constraint Satisfaction Problems (CSP) in establishing non-CSP expert systems, e.g. rule-based and frame-structured expert systems on KEE. We find that these CSP techniques can be used to improve efficiency by performing consistency checking prior to searching for a solution, which we call pre-processing. This pre-processing is introduced to eliminate a number of variable values which are inconsistent with certain unary and binary constraints. In practical applications, this method can be used to avoid a considerable amount of useless backtracking. We have developed an independent module for applying CSP techniques in general purpose programming in KEE. This CSP module provides KEE with ability to establish more versatile expert systems. Through case studies of the truck dispatching problem and the word puzzle problem, we demonstrate how to achieve UDS and how to implement various techniques which we have presented to improve efficiency in UDS. Some of the advantages of UDS are shown in the case studies

    Acceleration and semantic foundations of embedded Java platforms

    Get PDF
    Tableau d'honneur de la Faculté des études supérieures et postdoctorales, 2006-200
    corecore