What is OCCAM
OCCAM (Open Curation for Computer Architecture Modeling) is a project that will serve as the catalyst for the tools, education, and community-building needed to bring openness, accountability, comparability, and repeatability to computer architecture experimentation.
This digital archival and software preservation project provides tools to build, debug, and deploy new objects, such as simulators, benchmarks, and tracers, into the federated space. As a developer or researcher, you can augment existing simulators, or build new ones, and have them be immediately available to the rest of the network. Once you deploy them, they will become, like any other curated object, perpetually available. These objects can also make use of any of the generic tools and widgets already available or built in the future.
This system is a general software curation and dispatching tool. It should not be strictly relegated for use in computer architecture research or computer science research in general. Objects can be biological simulators, typesetting tools, image and visualization tools, and even general digital art tools and games. The community at large can and should use this tool to build repeatable and accountable digital objects.
Workflow Design and Execution
OCCAM allows you to connect various objects together to create a workflow that will be dispatched and executed. With our workflow builder, you just build out the workflow one node at a time. Once you have a workflow, you can create a set of experimentation runs with configuration and simulation parameters you can define. You can automatically generate a set of experimentation runs by sweeping configuration parameters or benchmark binaries.
OCCAM allows a person to write interactive pages where they can describe the work and results. On this page, the author can embed any interactive widget and configure that widget like any other object.
These widgets can take data generated from any experiment or simulator. Furthermore, the widget tools can pull out a subset of that data on demand which makes it great for not only plotting, but visualization. As always, provenance is recorded. The data, when used as input to the widget, is recorded within the paper with its exact revision and id.
Embed the paper on your own personal website and go straight from the paper, the graph, to the data and the experiment. Then just press run to see the results again.
Video Game Preservation
OCCAM can preserve many forms of digital art. The most obvious case are video games via emulation. OCCAM doesn't just pre-package virtual machines to run games or other art. Instead, it takes a more flexible approach.
Based on the metadata, OCCAM decides how to build a virtual machine to run a piece of software on the fly. In this case, Lemmings is simply a package with an EXE that says it needs to run in DOS. A VM builder figures out that it can run this using a combination of Linux, DOSBox, and the game files and builds the VM for that goal. In the future, the VM builder may choose a different approach when computers change underneath meaning the archive can adjust and adapt as time passes.
OCCAM can run old GUI programs within the browser. These programs can be associated with certain types of objects as viewers. When properly associated, these programs can be used to open those files directly on that object's page. For instance in the image above, an old PCX file can be opened with a DOS program PICTVIEW. You can see the odd colors because the program is only 16 color, thus you can revisit the limitations and see exactly what others saw during that time.
OCCAM takes objects, such as simulator code, from the ephemeral Internet and migrates them to reside within the federated curated space. Once an object is installed onto a node, that node immediately becomes a mirror for any and all resources used to build that object.
When an object is built, a virtual environment is created. Any requests that the object's build process uses to pull in other extraneous files or repositories will be captured and recorded such that they are also mirrored.
When another OCCAM node imports this object, it may receive the annotations describing the mirrors for all resources required for that object to build. The system is designed to provide an infrastructure such that simulator, benchmark, etc objects can be repeatably built once one node has successfully done so even if the origin of the resources, such as the original url of the code, is destroyed or unavailable.
Upcoming and Recent Events
ISCA 2015 OCCAM Tutorial
Our tutorial will demonstrate that OCCAM is a complete infrastructure for end-to-end research from hypothesis through experimentation and finally visualization. After the tutorial, participants will be able to immediately make use of and collaborate within the system for their own purposes. Participants will also have the knowledge to set up their own instances of OCCAM, which is freely and publicly available, where they can help curate tools, simulators, and research workloads within our distributed and collaborative system.
Refer to this page to see a list of all prior workshops, events, and tutorials.
The OCCAM project is sponsored by Division of Computer and Network Systems, National Science Foundation, OCCAM: Open Curation for Computer Architecture Modeling, award number CNS-1305220.
OCCAM is an outcome of the Workshop on a Community Supported Computer Architecture Design and Evaluation Framework held in 2012, which was sponsored by Division of Computer and Communication Foundations, National Science Foundation, Cyberinfrastructure for Computer Architecture Design and Evaluation, award number CCF-1148646.