HAL: The High-performance Algorithm Laboratory
home | news | people | downloads | sample data | support | references | screenshots

HAL, the High-performance Algorithm Laboratory, is a versatile and extensible, free environment for empirical algorithmics.

HAL supports the empirical analysis and design tasks encountered during the development, evaluation and application of high-performance algorithms for challenging computational problems. HAL has been designed to facilitate the easy and correct use of a broad range of standardised, advanced empirical analysis and design methods; to design and perform computational experiments, including large-scale analysis and design tasks involving substantial amounts of computation on potentially large clusters of machines; and to support the development and critical assessment of novel empirical analysis and design techniques.

HAL ...

  • supports working with instances of and algorithms for arbitrary problems
  • can run experiments on local or remote machines
  • allows easy distributed execution of experiments on compute clusters
  • includes plugins for commonly encountered performance analysis tasks and several state-of-the-art automated algorithm con gurators
  • offers detailed information about and control over computational experiments before, during and after execution
  • archives and organizes algorithms, benchmark instance sets and experimental results in a centralized database
  • produces statistical data and plots for inclusion in publications
  • is controlled from any web browser through an intuitive, task-based interface
  • provides a versatile API and powerful infrastructure for developping and deploying new meta-algorithmic analysis and design procedures.

For more details, refer to our publications, or look at some screenshots of HAL in action.

News

January 7, 2013

HAL 1.1.6 has been released! Download it now, or view the changelog
The first version of the command line tools has been released! Download it here.

December 07, 2012

HAL 1.1.5 has been released! Download it now, or view the changelog

November 27, 2012

HAL 1.1.4 has been released! Download it now, or view the changelog

November 02, 2012

HAL 1.1.3 has been released! Download it now, or view the changelog

September 27, 2012

HAL 1.1.2 has been released! Download it now, or view the changelog.

August 1, 2012

HAL 1.1.0 has been released! Download it now, or view the changelog.

June 1, 2012

Quinn Hsu has joined our lab permanently, as a research programmer. Congratulations Quinn!

January 1, 2012

Quinn Hsu has joined the HAL team on a four-month appointment, we can look forward to many HAL improvements in the near future.
People
Chris Fawcett
Quinn Hsu
Christopher Nell (M.Sc., graduated)
Holger H. Hoos
Kevin Leyton-Brown
Downloads

Current HAL release, version 1.1.6

HAL 1.1.6 has now been released. Please read the changelog for a summary of what has changed since the last release. Some information about what is in the pipeline for upcoming release can be found in the upcoming release notes, and all known issues for the current release can be found at current known issues.

Readme:

Download a very brief readme/quick-start guide here.

License:

HAL 1.1.6 and all posted plugins are released under the GPL 3.0 license. Source code is available upon request, and other licensing options are available by contacting the developers.

Requirements:

  • HAL requires version 6.0 or higher of the Java Runtime Environment (JRE).
  • Rendering of plots additionally requires gnuplot be installed and accessible from your environment path variable.
  • If you plan to run more than one experiment simultaneously on separate hosts, we highly recommend using the MySQL database plugin to replace the default SQLite database; since SQLite uses file-based locking, it is prone to deadlocks when multiple processes access the same database file. To do this, run HAL, then edit the hal.json file and replace the "database" entry with a line like "jdbc:mysql://[username]@[mysql.server]:[port]/[database_name]". On restart, HAL will set up the new database schema automatically, so long as the provided URI points to a working MySQL server with appropriate access permissions.

Combined HAL package:

(version 1.1.6, 2012/12/07). MD5: 8bffb237bd970fba1517c0fd84c88966 Download here
Includes HAL 1.1.6 core, plus all plugins listed below.

To use this package, unzip to a working directory, and double-click the hal_<version>.jar to start the webserver (or type "java -jar hal_<version>.jar"). Then, browse to the UI.

HAL core:

(version 1.1.6, 2012/12/07). MD5: ed752f029403bb7642fee94df1861465 Download here
Includes only the core HAL functionality, with no plugins.

Plugins (put in "plugins" subfolder to use):

SCD-Based Analysis (analysis of a single target algorithm)

(version 1.1.2, 2012/09/27). MD5: 1ccbb9df99797407f41107d9a1b7889c Download here.

Comprehensive Pairwise Comparison (analysis of two target algorithms)

(version 1.1.2, 2012/09/27). MD5: be3e8facedfd52fb758c0152ffa41050 Download here.

ParamILS (algorithm configuration design procedure)

(version 1.1.2, 2012/09/27). MD5: a87d5cfe74b83144430fcd074b1a2c0d Download here.
Requires a working Ruby installation, with the Ruby interpreter in your environment's path variable.

ROAR (algorithm configuration design procedure)

(version 1.1.2, 2012/09/27). MD5: 4c8b186e47ae621277735d85d797e5cf Download here.

MySQL (data manager)

(version 1.1.2, 2012/09/27). MD5: 7e8cb6dc00488c60a73943406b88e730 Download here.
Adds support for MySQL database servers.

R (statistics package)

(version 1.1.2, 2012/09/27). MD5: 438b103f3b19354a831764903449655e Download here.
Enables use of an existing R installation to perform statistical tests.

Older releases and data can be found here.
Experiment packages and sample data

Simple sample experiment packages

To use, don't unzip, just use the HAL 1.0 import interface.

Sample configuration experiment

MD5 checksum: e56881ed04711e969dd6e1b32eae6040 (15 MB, 2012/09/27). Download here.
A simple configuration experiment using SPEAR. For full details, see the 1.0.0 description.

Experiment packages from Nell et al. (2011):

To use, don't unzip, just use the HAL import interface.

Spear: SWV configuration experiments

MD5 checksum: bb6e5290306b2c0605cf447bf8a72bfa (258 MB, 2012/09/27). Download here.
Requires HAL core version 1.1.2 or greater. Configuration experiments require ParamILS and ROAR plugins, version 1.1.2 or greater. SWV training instance set is included. Spear binary for Linux is included.

Spear: SWV validation experiments

MD5 checksum: 4982464986274d65ad1a8688d330edd5 (258 MB, 2012/09/27). Download here.
Requires HAL core version 1.1.2 or greater, and SCD-based analysis plugin version 1.1.2 or greater. SWV training instance set is included. Spear binary for Linux is included.
Note that these validation experiments use the designs obtained via the configuration experiments on our compute cluster; the designs produced by running the packaged configuration experiments on other machines will differ.

Spear: SWV test set experiments

MD5 checksum: b52903431b54a353cef52470e9c806d7 (237 MB, 2012/09/27). Download here.
Requires HAL core version 1.1.2 or greater, as well as SCD-based analysis and pairwise comparison plugins version 1.1.2 or greater. SWV test instance set is included. Spear binary for Linux is included.

Older releases and data can be found here.

Support

HAL has been designed to be easy to use. A more complete user manual for HAL is in development, and will be announced in an upcoming release. Until then, we suggest you read the papers if you desire more information than that provided by the quick start guide.

HAL is under active development and testing. Chances are, if you've found a bug, we're working on fixing it. That said, please let us know about any problems, ideas, or feature requests you might have, and thanks for helping us to build a better HAL!

Publications
Christopher Nell. Automating Meta-algorithmic Analysis and Design. M.Sc. Thesis, Department of Computer Science, University of British Columbia, October 2011. ( pdf | bib )
Christopher Nell, Chris Fawcett, Holger H. Hoos, and Kevin Leyton-Brown. HAL: A Framework for the Automated Analysis and Design of High-Performance Algorithms. In Proc. LION-5, 2011. ( pdf | bib )
Holger H. Hoos. Computer-aided design of high-performance algorithms. Technical Report TR-2008-16, Department of Computer Science, University of British Columbia, 2008. ( pdf | bib)

Last updated 2013/01/07