Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2004, Lecture Notes in Computer Science
…
15 pages
1 file
We present a new implementation of the old Occam language, using Microsoft .NET as the target platform. We show how Occam can be used to develop cluster and grid applications, and how such applications can be deployed. In particular, we discuss automatic placement of Occam processes onto processing nodes.
2003
KRoC.net is an extension to KRoC supporting the distribution of occam channels over networks, including the internet. Starting in 2001, the development of KRoC.net has gone through a number of stages, each one making the system more flexible, transparent and dynamic. It now enables the occam programmer to set up and close network channels dynamically. Configuration has been simplified. All occam PROTOCOLs can now be sent over network channels, without need for conversion. Many of the new dynamic features in occam have been used to improve KRoC.net. Many of the concepts in KRoC.net are similar to those in the JCSP Network Edition (JCSP.net), KRoC.net's counterpart in the JCSP world. This paper will give an overview over KRoC.net, its usage, its design and implementation, and its future. It will also provide some benchmarks and discuss how the new occam features are being used in the latest KRoC.net version.
2005
This paper introduces a safe language binding for CSP multiway events (barriers -both static and mobile) that has been built into occam-π (an extension of the classical occam language with dynamic parallelism, mobile processes and mobile channels). Barriers provide a simple way for synchronising multiple processes and are the fundamental control mechanism underlying both CSP (Communicating Sequential Processes) and BSP (Bulk Synchronous Parallelism). Formal semantics (through modelling in classical CSP), implementation details and early performance benchmarks (16 nanoseconds per process per barrier synchronisation on a 3.2 GHz Pentium IV) are presented, along with some likely directions for future research. Applications are outlined for the fine-grained modelling of dynamic systems, where barriers are used for maintaining simulation time and the phased execution of time steps, coordinating safe and desired patterns of communication between millions (and more) of processes. This work forms part of our TUNA project, investigating emergent properties in large dynamic systems (nanite assemblies).
Anais do IV Simpósio Brasileiro de Arquitetura de Computadores e Processamento de Alto Desempenho (SBAC-PAD 1992)
For many years software engineers have been providing the engineers of other fields with advanced design tools. But the tools used by software designers themselves look quite primitive in comparison. Only CASE-like systems developed during last years can provide reasonable help to software developers. Experimental software development systems ALADDIN/LAMP is oriented to creation of distributed computer control systems (DCCS). Proposed approach to development distributed software configurations (DSCs) is based on the model of virtual distributed software configuration (VDSC) with information-transport ports (ITPs) as interconnecting servers. Transputer networks and OCCAM-written software are often used for creation of DCCS. An approach to ALADDIN/LAMP tools-extention for OCCAM-written DSCs handling is discussed in this paper. Survey of tools is presented (OCCAM-oriented structure editor OSE, OCCAM structure extractor OSX, ALADDIN/OOB translator and deadlock locator and analyser DLA)....
In many application environments there is a need to able to allocate resources dynamically. The occam programming language has no concept of such dynamic allocation. This paper shows how dynamic allocation can be incorporated into occam without sacrificing the benefits which are obtained using static allocation strategies. This capability has been achieved by a simple extension to occam3 to include a TASK mechanism which is defined using existing occam3 features. The main component of the dynamic mechanism is a library which manages the allocation and de-allocation of tasks. The paper includes an example showing how the dynamic allocation mechanism is employed. 1. Introduction The occam programming language is inherently a static language that does not permit the dynamic allocation of data structures and/or processes. From the philosophical point, where real-time systems are concerned, this is a justifiable position. However, from other viewpoints this position is less tenable. The ...
2005
This paper describes an extension to the KRoC occam-π system that allows processes programmed in C to participate in occam-π style concurrency. The uses of this are wide-ranging, from providing low-level C processes running concurrently as part of an occam-π network, through to concurrent systems programmed entirely in C. The easily extended API for C processes is based on the traditional Inmos C API, used also by CCSP, extended to cover new features of occam-π. One of the motivations for this work is to ease the development of low-level network communication infrastructures. A library that provides for networking of channel-bundles over TCP/IP networks is presented, in addition to initial performance figures.
Correct Hardware Design and Verification Methods, Proc. IFIP WG10.2 Advanced Research Working Conference, CHARME '93, 1993
This paper shows how to compile a program written in a subset of occam into a normal form suitable for further processing into a netlist of components which may be loaded into a Field-Programmable Gate Array (FPGA). A simple state-machine model is adopted for specifying the behaviour of a synchronous circuit where the observable includes the state of the control path and the data path of the circuit. We identify the behaviour of a circuit with a program consisting of a very restricted subset of occam. Algebraic laws are used to facilitate the transformation from a program into a normal form. The compiling specfii cation is presented as a set of theorems that must be proved correct with respect to these laws. A rapid prototype compiler in the form of a logic program may be implemented from these theorems.
1997
The need to declare channels as global objects of the applications implemented according to the Distributed Programming Occam-CSP model, limits the desirable reusability of the software-modules of the said applications. The integration of other languages that follow the OO paradigm is not easy either. In this paper, easy solutions are proposed to augment the reusability of languages that follow the existing model based on a class of modules called ODAs and on a previously existing language that implement the above-mentioned modules in a multicomputer based on a Transputer platform.
Efficient utilization of available resources is a key concept in embedded systems. This paper is focused on providing the support for managing dynamic reconfiguration of computing resources in the programming model. We present an approach to map occam-pi programs to a manycore architecture, Platform 2012 (P2012). We describe the techniques used to translate the salient features of the occam-pi language to the native programing model of the P2012 architecture. We present the initial results from a case study of matrix multiplication. Our results show the simplicity of occam-pi program by 6 times reduction in lines-of-code.
2005
This paper introduces a safe language binding for CSP multiway events (barriers) that has been built into occam-π (an extension of the classical occam language with dynamic parallelism, mobile processes and mobile channels). Barriers provide a simple way for synchronising multiple processes and are the fundamental control mechanism underlying both CSP (Communicating Sequential Processes) and BSP (Bulk Synchronous Parallelism). The occam-π barriers are more general than those of BSP (an occam-π system can contain any number of barriers, with some processes ignoring them and some registered with many). On the other hand, they are also, currently, less general than those of CSP (occam-π processes must commit to barrier synchronisation -it cannot be used as part of a choice or ALT). Structured support for resignation, a higher-level CSP design pattern, is also built into occam-π barriers. Applications are outlined for fine-grained modelling of dynamic systems, where the barriers are used for maintaining simulation time and synchronising safe access to shared data between millions of processes. Implementation details and early performance benchmarks (16 nanoseconds per process per barrier synchronisation on a 3.2 GHz. Pentium IV) are also presented, along with some likely directions for future research.
Journal of Physics: Conference Series, 2017
The Open Computing Cluster for Advanced data Manipulation (OCCAM) is a multipurpose flexible HPC cluster designed and operated by a collaboration between the University of Torino and the Sezione di Torino of the Istituto Nazionale di Fisica Nucleare. It is aimed at providing a flexible, reconfigurable and extendable infrastructure to cater to a wide range of different scientific computing use cases, including ones from solid-state chemistry, highenergy physics, computer science, big data analytics, computational biology, genomics and many others. Furthermore, it will serve as a platform for R&D activities on computational technologies themselves, with topics ranging from GPU acceleration to Cloud Computing technologies. A heterogeneous and reconfigurable system like this poses a number of challenges related to the frequency at which heterogeneous hardware resources might change their availability and shareability status, which in turn affect methods and means to allocate, manage, optimize, bill, monitor VMs, containers, virtual farms, jobs, interactive bare-metal sessions, etc. This work describes some of the use cases that prompted the design and construction of the HPC cluster, its architecture and resource provisioning model, along with a first characterization of its performance by some synthetic benchmark tools and a few realistic use-case tests.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
Parallel Computing, 1999
Microprocessors and Microsystems, 1989
Communicating Process Architectures, 2005
Concurrency and Computation: Practice and Experience, 2006
Objects, Agents, and Features, 2004
Communicating Process Architectures 2002, 2002
Journal of Parallel and Distributed Computing, 2005
Lecture Notes in Computer Science, 2009
Lecture Notes in Computer Science, 2005
Software Testing, Verification and Reliability, 1993
Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '87, 1987
Software, IEE Proceedings-, 2003
2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012), 2012
IEEE Distributed Systems Online, 2005
Journal of Systems Architecture, 1997