The Hierarchical Architecture Simulation Environment (HASE) is a tool for modelling and simulating computer architectures. Using HASE, designers can create and explore architectural designs at different levels of abstraction through a graphical interface based on X-Windows/Motif and can view the results of the simulation through animation of the design drawings. This chapter describes the design and animation facilities of HASE, compares it with other simulation systems and concludes with suggestions for future tools based on several years’ experience using HASE within the University of Edinburgh department of computer science.
Neuroscience increasingly uses computational models to assist in the exploration and interpretation of complex phenomena. As a result, considerable effort is invested in the development of software tools and technologies for numerical simulations and for the creation and publication of models. The diversity of related tools leads to the duplication of effort and hinders model reuse. Development practices and technologies that support interoperability between software systems therefore play an important role in making the modeling process more efficient and in ensuring that published models can be reliably and easily reused. Various forms of interoperability are possible including the development of portable model description standards, the adoption of common simulation languages or the use of standardized middleware. Each of these approaches finds applications within the broad range of current modeling activity. However more effort is required in many areas to enable new scientific questions to be addressed. Here we present the conclusions of the "Neuro-IT Interoperability of Simulators" workshop, held at the 11th computational neuroscience meeting in Edinburgh ( July 19-20 2006; http://www.cnsorg.org ). We assess the current state of interoperability of neural simulation software and explore the future directions that will enable the field to advance.
The integrative ambitions of systems biology and neuroinformatics—to construct working models of the machinery of living cells and brains—will flounder unless researchers have access to the huge amounts of diverse experimental data being collected. However, the vast majority of bioscience research data that is gathered is never made available to other researchers, partly for the want of an adequate software for annotating experimental data, and partly for social reasons (researchers are rarely rewarded for publishing the actual data sets—just for journal articles summarizing findings).We have developed a novel software solution aimed at making it simpler for researchers to annotate and publish their research data. The first part of this solution is a desktop application, Catalyzer , which lets researchers structure their data at source, and complements existing ad hoc solutions in use in labs (including cryptic filenames, Word, Excel, paper lab books) while being simpler and more flexible than relational databases, which are too complex for most bioscience researchers to set up. The catalogs produced by Catalyzer are stored in XML with a user defined schema, which will simplify future data mining efforts across large numbers of distributed data sets. The approach can be summarized as ‘structure at source, integrate as required’, with the initial focus on enabling the researchers to structure their own research data; only then will other researchers be able to integrate across data sets. Copyright © 2006 John Wiley & Sons, Ltd.
We present a new approach to building radically distributed databases of neuroscience data. It aims to make available to modelers the huge amount of useful experimental data and notes which currently sits on experimenters PCs and lab notebooks. The approach has two components. The initial phase is a user friendly desktop application which experimental neuroscientists can use to markup data and build small catalogs of their data. The second phase is a server application which acts like a “smarter Google” which is able to combine and index catalogs from multiple researchers and labs so that modelers can download local copies of data relevant to their study.
Many problems in computational neuroscience require sophisticated software systems that are beyond the development scope of a single individual or research group. Realizing such systems with minimal redundant effort requires cooperation among software developers and the adoption of design strategies and technology from the software industry.We are working on neuroscience-specific frameworks for modelling tools aimed specifically at maximising the benefits from of investment in software development by encouraging the reuse of software components and at facilitating model development by establishing shared formats for model description.The techniques employed include component technology for coupling parts of applications, XML file standards based on NeuroML for model and data exchange between applications and databases, and peer-peer web based indexing of models and modules.This paper describe progress to date in the modularization of simulation and analysis functions from NEURON, Catacomb and NEOSIM. (C) 2003 Elsevier Science B.V. All rights reserved.
We describe a case study transforming a simulation model coded in sequential C++ to run in parallel under Neosim, to enable much larger compartmental network models to be run. For some network models cut down scale is sufficient; however, there are cases where network behaviour cannot be reproduced on a smaller model (e.g. Neurocomputing 32–33 (2000) 1041). The example we present is a model of slow-wave sleep oscillations. In an earlier paper (Neurocomputing 38 (2001) 1657) we outlined the design of the Neosim framework for scaling models, focussing on networks of compartmental neuron models built using existing simulation tools Neuron and Genesis. Here, we explain how a Hodgkin–Huxley network model coded in C++ for a cortical network was adapted for Neosim, and describe the experiments planned. This case study should be of interest to others considering how best to scale up existing models and interface their own coded models with other simulators.
Neuroscience is generating vast amounts of highly diverse data which is of potential interest to researchers beyond the laboratories in which it is collected. In particular, quantitative neuroanatomical data is relevant to a wide variety of areas, including studies of development, aging, pathology and in biophysically oriented computational modelling. Moreover, the relatively discrete and well-defined nature of the data make it an ideal application for developing systems designed to facilitate data archiving, sharing and reuse. At present, the only widely used forms of dissemination are figures and tables in published papers which suffer from inaccessibility and the loss of machine readability. They may also present only an averaged or otherwise selected subset of the available data. Numerous database projects are in progress to address these shortcomings. They employ a variety of architectures and philosophies, each with its own merits and disadvantages. One axis on which they may be distinguished is the degree of top-down control, or curation, involved in data entry. Here we consider one extreme of this scale in which there is no curation, minimal standardization and a wide degree of freedom in the form of records used to document data. Such a scheme has advantages in the ease of database creation and in the equitable assignment of perceived intellectual property by keeping the control of data in the hands of the experts who collected it. It does, however, require a more sophisticated infrastructure than conventional databases since the software must be capable of organizing diverse and differently documented data sets in an effective way. Several components of a software system to provide this infrastructure are now in place. Examples are presented, showing how these tools can be used to archive and publish neuronal morphology data, and how they can give an integrated view of data stored at many different sites.
Modern software systems for simulation, database access, visualisation and data analysis, supporting distributed, extensible, evolutionary development, are designed around a small core that loads plug-in components. We have designed such a system for the neurosciences using an XML-based protocol, NeuroML, to exchange information between components. NeuroML supports high-level descriptions of data, models, references, and other types of information. We have built simulation kernel plug-ins, visualisation plug-ins, and model-description GUI plug-ins which interoperate in this framework. We describe the current status of these plug-ins and our future plans for further plug-in components.
NEOSIM is a new simulation framework addressed at building large scale and detailed models of the nervous system. Its essence is a set of interfaces and protocols that enable a plug and play architecture for incorporating existing simulation modules such as NEURON [4] and GENESIS [1] as well as future visualisation and data analysis modules. From the start it has been designed to exploit parallel and distributed computers to reduce simulation run times to manageable levels, without the additional modelling effort required for earlier publicly-available parallel simulation tools. In this paper, we present the design of the NEOSIM framework, and discuss its applicability to a range of modelling studies.
Biological nervous systems and the mechanisms underlying their operation exhibit astonishing complexity. Computational models of these systems have been correspondingly complex. As these models become ever more sophisticated, they become increasingly difficult to define, comprehend, manage and communicate. Consequently, for scientific understanding of biological nervous systems to progress, it is crucial for modellers to have software tools that support discussion, development and exchange of computational models. We describe methodologies that focus on these tasks, improving the ability of neuroscientists to engage in the modelling process. We report our findings on the requirements for these tools and discuss the use of declarative forms of model description--equivalent to object-oriented classes and database schema--which we call templates. We introduce NeuroML, a mark-up language for the neurosciences which is defined syntactically using templates, and its specific component intended as a common format for communication between modelling-related tools. Finally, we propose a template hierarchy for this modelling component of NeuroML, sufficient for describing models ranging in structural levels from neuron cell membranes to neural networks. These templates support both a framework for user-level interaction with models, and a high-performance framework for efficient simulation of the models.
In an investigation into the transformation of mossy fiber input to Purkinje cell output in the cerebellar cortex, we have developed a network model including a sophisticated compartmental model of the Purkinje cell. Analysis and simulations demonstrated the need to include a large number of parallel fibers (244000) to obtain realistic Purkinje cell firing patterns for random mossy fiber input. Using smaller numbers of parallel fiber inputs resulted in unrealistic Purkinje cell spiking characterized by spontaneous dendritic calcium spikes. Because the scale required is beyond workstation capabilites, we used a 128-processor Cray T3E running PGENESIS. This size network could produce realistic spiking patterns provided the stellate cell inhibition was tuned carefully.
IntroductionThe Hierarchical computer Architecture design and Simulation Environment(HASE) has now existed in various forms since 1992. The main goal of theproject has been to provide computer architects with a set of tools that allowthe rapid development and exploration of system designs. The initial ideas forHASE were investigated as a PhD project [1], but it has evolved significantlyas a result of the requirements of various of the projects for which it has beenused and it is now a...
A hierarchical computer architecture design and simulation environment (HASE) has been developed at the University of Edinburgh. HASE allows rapid development and exploration of computer architectures at multiple levels of abstraction, encompassing both hardware and software. It has five modes of operation (Design, Model Validation, Build Simulation, Simulate System, and Experiment) which formalize the design cycle and allow a proper separation of concerns among the different phases of simulation activity. The software of HASE itself includes a project data storage facility, a discrete-event simulation engine, graphical display/ editing mechanisms, a visualization mechanism, and tools for setting up experiments and gathering results. HASE has been used in a number of research and student projects and these exemplify many of the interesting features of HASE and their relation to designing, simulating and evaluating scalable systems. They include the modeling of scalable implementations of the hierarchical PRAM model of parallel computation on a 2-D mesh, the evaluation of the performance of multiprocessor interconnection networks, and a model of the Stanford DASH architecture.
simjava is a toolkit for building working models of complex systems. It is based around a discrete event simulation kernel and includes facilities for representing simulation objects as animated icons on screen.simjava simulations may be incorporated as \live diagrams" into web documents. This paper describes the design, component model, applications and future of simjava .
A hierarchical computer architecture design and simulation environment (HASE) has been developed at the University of Edinburgh. HASE allows rapid development and exploration of computer architectures at multiple levels of abstraction, encompassing both hardware and software. It has five modes of operation (Design, Model Validation, Build Simulation, Simulate System, and Experiment) which formalize the design cycle and allow a proper separation of concerns among the different phases of simulation activity. The software of HASE itself includes a project data storage facility, a discrete-event simulation engine, graphical display/ editing mechanisms, a visualization mechanism, and tools for setting up experiments and gathering results. HASE has been used in a number of research and student projects and these exemplify many of the interesting features of HASE and their relation to designing, simulating and evaluating scalable systems. They include the modeling of scalable implementations of the hierarchical PRAM model of parallel computation on a 2-D mesh, the evaluation of the performance of multiprocessor interconnection networks, and a model of the Stanford DASH architecture.
The Integrated Learning Support Environment (ILSE) for Computer Architecture provides structured on-line access to a large body of text and diagrams in which the diagrams (a) remain visible on-screen even when the text is scrolled, (b) may in some cases be animated to provide a visual demonstration of activities occurring within a computer system. It uses a WWW multi-frame window system, with separate frames for text, diagrams and navigation control. The animated diagrams are driven by output from an architecture simulation system which has been (re-)written in Java. Using Java, live simulations can be incorporated into the WWW pages and run remotely.
A discrete event simulation library has been written in the Java language, based on the SIM++ library for C++. This allows live simulations to be incorporated into web pages and run remotely. This paper presents a performance comparison with the equivalent C++ simulator and discusses advantages and disadvantages of Java as a simulation language. 1 Motivation The primary purpose of writing simulations in the Java language was to allow \live diagrams" to be incorporated into documents describing the behaviour of computer architectures. Using Java, other people can experiment with a working simulation model by clicking on a web link. This contrasts with using a traditional simulation language written in Simula or C++, where exporting simulation code requires recompilation and installation on each diierent machine. Java incorporates the language features necessary for simulation, notably objects and threads. Current Java implementations compile down to an intermediate byte code, which is interpreted. Thus the main disadvantage of using Java is expected to be longer simulation run times compared with a native C++ compiler. This penalty is quantiied in section 6. SIM++, a discrete event simulation library for C++ written by Jade Simulations Inc 5] has been used for computer architecture simulations as
HASE is a Hierarchical computer Architecture design and Simulation Environment (HASE) which allows for the rapid development and exploration of computer architectures at multiple levels of abstraction, encompassing both hardware and software. The components of a computer system lend themselves naturally to being modelled as objects, so HASE has been implemented in an object-oriented language. Within HASE there are graphical entity design and edit facilities, entity library creation and retrieval mechanisms, an animator, and statistical analysis and experimentation tools for deriving system performance metrics. HASE uses an object-oriented database management system (ObjectStore) to make the design objects and the entity library persistent, For each architecture model HASE allows many experiments with varying parameters to be performed. The database facilities provided through HASE manage not only the results of each experiment, but also their relationship to the state of the architecture model that produced these results, including all input and output parameters and their values during the experiment. This paper describes the design of HASE, some of the varied projects which have used it, and the future direction of the system.