Download and setup
From Horace
Contents |
System Requirements
- 4GB RAM
- Matlab 2007a (7.4.0) or later for Windows 32-bit and Linux 64-bit operating systems
- Matlab 2009a or later for Windows 64-bit operating system
- Windows 32-bit, Windows 64-bit, or Linux 64-bit operating system
Horace can be a computationally expensive program to run. For example a dataset comprising ~100 SPE files from the Merlin spectrometer at Isis would be approximately 30GB in size, with an additional ~45GB of intermediate files and 15GB of original SPE files. One must, then, have a sufficiently large amount of free disk space to accommodate such large files.
Horace is also involves some rather memory-intensive processes, therefore if your machine has insufficient memory (RAM) you will get "Out of memory" error messages from Matlab. We have found that even on a windows 32-bit machine with 4GB of RAM (2x2GB) the "3GB switch" (which divides the memory into 3+1GB, rather than 2+2GB) must be enabled in the boot file for Horace to function properly. There is plenty of online material available (see, for example, here) that explains how to set the 3GB switch. We have found that sometimes problems can arise when setting the 3GB switch, in particular the behaviour of the graphics on your computer may change. We therefore recommend that you save a copy of your original boot file as a backup.
If you have less than 4GB of memory in the first place we can only recommend that you either buy some more memory, or process your data on the Mordred or Melehan servers at Isis.
Horace has been developed using Matlab 2008a, using some of the new functions included in this release of Matlab that do not exist in earlier versions. Therefore you must use a version of Matlab that is at least as recent as version 2008a. We have tested Horace on Windows 32-bit and 64-bit, and Linux 64-bit operating systems. Other operating systems (e.g. Mac) will work, though approximately two times slower if your C++ routines have not been compiled. If you have C++ compiler configured properly with your Matlab, you can avoid this by issuing horace_mex() command.
Download
New Smaller Download
In the download area (see below) you can now get a zipped distribution of Horace without demo files. This is significantly smaller - about 3MB rather than 100MB for the full installation.
Full Download
Horace is distributed in a zip file, which you simply have to unpack into a suitable part of your hard drive. In order to obtain it you must register yourself on the Horace-announce mailing list. Once registered you will be issued with a password which allows you to enter the download area of this site. We request that you register so that you can be informed of bug fixes and new releases of Horace - your information will not be passed to any third-parties, nor will it be used for anything other than the aforementioned purposes. At present the download site contains zip files containing the Windows 32-bit and Windows 64-bit distributions. You should be able to build a Horace for your OS if you have a C++ compiler installed and working with your MATLAB, but feel free to contact Horace Help, if you have problems doing that. It will also work out of box without building any mex-files, though the speed of some operations will be 2-5 times slower.
Horace uses low level functions, which can be found either in in Libisis or in Herbert package. (e.g. some of the fitting algorithms), so you need either Libisis or Herbert (or both) available before installing and using Horace. Build and use Libisis if you already have one or need to reduce your experimental data using it rather then Mantid. Your instrumental scientist will probably advise you if you need this option. If you just need to use Horace, installing Herbert would be easier and would provide you with the same functionality, so you are advised to use Herbert, the installation package of which can be found together with the Horace package. If both Herbert and Libisis are found on your machine, Horace will use the one which it finds initialization higher (i.e. initiated later) on your Matlab search path.
Recent Horace versions come as standalone distribution pack which includes Herbert. If you still need to use it with Libisis, look at Horace and Libisis installation page.
Installation using startup file
Installation is quite straightforward, since it requires only a small modification to your startup.m script and for all of the Horace folders to be placed somewhere sensible…
C:\mprogs\which is the directory often used for MSlice. Now you need to edit your
startup.m file so that the Herbert and Horace are added to the Matlab path whenever you restart. Find your startup.m file, which is usually located somewhere like C:\MATLAB\R2008a\toolbox\local\startup.m
This is the Matlab default location. Alternatively you can start a new Matlab session and then type
edit startup
and the correct startup file should be found.
At the bottom of your existing startup.m file you must put the following:
%----------------------------------------------------------
% HERBERT:
try
herbert_off;
catch
end
addpath('C:\mprogs\Herbert\');
herbert_init;
Next, below the Herbert initialisation, put the following:
%----------------------------------------------------------
% HORACE:
try
horace_off;
catch
end
addpath('C:\mprogs\Horace');
horace_init;
where of course C:\mprogs\... is where we placed the Horace folders. If you put them somewhere else then obviously this bit will be different.
A note of advice – when you start writing your own Horace functions you may wish to organise them in folders within the C:\mprogs\Horace\functions\ directory. If you do this then make sure you add the new directories to the path in your startup file!
The herbert_off and horace_off operations are needed to keep Matlab search path tidy if in the past you had different versions of Herbert or Horace installed.
VERY IMPORTANT It is imperative that you do not add directories in the Horace main directory to your Matlab path by hand. Such duplication results in very obscure problems, and could, in the worst case scenario, result in your work not having the meaning you thought it did! All of the necessary paths are added, in the correct order, by the horace_init function in your startup.m script.
Installation using horace_on file
You should use this approach if you do not use Horace each time you start Matlab and want to initiate it only when needed. To do that, you have to create horace_on.m file and place this file on the Matlab search path. It can be the folder where you always start Matlab from or any other folder, added to and saved with the Matlab search path.
The horace_on.m.template can be found in top folder of your downloaded distributive. Edit this template, replacing first row with the path where you are placed Horace folder and horace_init.m file can be found, e.g.:
default_horace_path ='C:/mprogs/Horace';
Replace second row of this file by the path, where you placed Herbert folder and herbert_init.m file resides, e.g.
default_herbert_path ='C:/mprogs/Herbert';
Then rename this file into horace_on.m and move it to the place, where Matlab can always find it.
Type:
>> rehash toolbox
if this location is in $matlab_path$/toolbox/ISIS area and you have added this location to Matlab search path.
Horace will be available after typing
>>horace_on()
command.
You can copy contents of horace_on.m function into your startup.m file and add horace_on(); command to the end of the executive part of startup.m file instead of the code, described in the previous chapter.