MLwiN system requirements
MLwiN is developed and tested on Windows 10. It may work on previous versions of Windows, however we are unable to test and therefore support this.
Other minimum requirements
32 Mb RAM; 100Mb hard disk.
The actual amount of memory and disk space required will depend on the data being analysed.
If you are only interested in using the MLwiN engine via macros (for example by running from R2MLwiN or runmlwin) then we provide native versions of this for Mac OS X and various variants of Linux (available from here for existing users). If you need to use any of the GUI features then there are three options for running on these systems detailed below:
Running in Wine
Wine (see http://www.winehq.org) is a compatibility layer that allows many applications originally designed to run under Windows to work on x86/x64 systems running Linux or MacOS X. We are unable to offer individual support on setting this up, however the following should provide an outline of the steps required.
Installing Wine (Linux)
On Linux systems Wine is often available as a package provided with the distribution. If this is unavailable or out of date (we recommend a minumum Wine version of 5.0) you can also download an installation package for many popular distributions from https://wiki.winehq.org/Download.
If you are still using version 2.36 or lower (for example the trial version) run the following commands to install addionaly required dependencies:
winetricks vb6run winetricks mfc42 winetricks corefonts
Installing Wine (MacOS 10.8 to 10.14)
NOTE: MacOS 10.15 (Catalina) has dropped support for 32-bit applications, preventing current versions of Wine from working (Crossover 19 (https://www.codeweavers.com/about/blogs/jwhite/2019/12/10/celebrating-the-difficult-the-release-of-crossover-19) does claim to support this, but we are not able to test whether this applies to MLwiN).
Before installing Wine you will first need to download and install XQuartz from https://www.xquartz.org/.
Download and install Wine via the official package available from http://wiki.winehq.org/MacOSX.
If you are still using version 2.36 or lower (for example the trial version) the following additional step are necessary:
Download and install cabextract from https://github.com/rudix-mac/history-packages/blob/master/10.12/cabextract-1.6-0.pkg
From Launchpad locate and open Wine (this should open a terminal window).
Download and install winetricks with the following commands:
curl -O https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks chmod +x winetricks
Run the following commands
./winetricks vb6run ./winetricks mfc42 ./winetricks corefonts
NOTE: Wine on macOS does not currently support the 64-bit version of MLwiN, so if you are using this ensure you have downloaded the 32-bit version prior to this step.
Once Wine is installed use the following command to install MLwiN (this assumes that the MLwiN installer is in the current directory):
wine msiexec /i MLwiN.msi
You should then be able to run MLwiN with the command:
wine <full path to mlwin.exe>
If you are going to run more than one Windows application in a session you can improve startup times with the following command at the beginning of the session:
If you want to avoid the wine prefix and are running Linux you can use the command as root (some distributions set this automatically when you install Wine):
echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register
The MacOS Wine install automatically associates the .exe file suffix with Wine, so you can run MLwiN by locating the mlwin.exe file (usually in the MLwiN subdirectory under ~/.wine/drive_c/Program Files (x86)) and double-clicking it. To avoid having to navigate to this each time you want to run the application you can create an alias in a convienent location.
If you want to call MLwiN via scripts you can create the following wrappers (although we would recommend installing the native versions of mlnscript for your operating system):
In the directory containing mlwin.exe create a file called mlwin.sh with the following contents:
#!/bin/sh wine mlwin.exe $@
In the same directory create a file called mlnscript.sh containing the following:
#!/bin/sh wine mlnscript.exe $@
Finally you need to make these scripts executable with the chmod command, i.e.:
chmod +x mlwin.sh
These files should now work the same way as if you were running on Windows, allowing you to open MLwiN or call it from a package such as runmlwin/R2MLwiN.
If you are running MLwiN under Mac OS and find that the text is not smooth you can follow the instructions at https://superuser.com/questions/1122027/font-smoothing-in-wine-using-winetricks-does-not-work-on-os-x to switch to an alternative Truetype renderer.
This method requires that you have a valid Windows license.
If you are using Mac OS X the installation can be automated with Boot Camp (http://www.apple.com/support/bootcamp/).
If you are running Linux then you have to either partition your hard drive, or install a second one and then set up Windows on this drive.
There are a variety of software packages that will allow you to set up a virtual Windows PC. These are both commercial (for example www.vmware.com/products/fusion/ or www.parallels.com) or free (for example Oracle's VirtualBox) All of these require a legal copy of Windows to use. Instructions for VirtualBox are given below.
- Install VirtualBox. You can download this for free from https://www.virtualbox.org/wiki/Downloads
- Create a virtual machine and install Windows into it. You will need a Windows CDRom or image as well as a valid Windows license. Instructions for creating the virtual machine can be found at the following link: https://www.virtualbox.org/manual/ch01.html#gui-createvm
If you are installing MLwiN for use with runmlwin we recommend setting a password for the Windows user.
- Once you have the virtual machine set up you need to install the VirtualBox guest additions to enable the virtual machine to communicate with the operating system. To do this choose the following menu item:
Devices->Install Guest Additions
- Share the folder (via Devices->Shared Folders) containing your MLwiN installer and then run the installer inside the virtual machine. If you are setting this up for use with runmlwin you need to choose custom install and modify the installation directory so that it does not contain any spaces.
Processor feature support
64 bit windows benefits
Since version 3.00 MLwiN has been available as a 64-bit application. This allows it to make full use of the memory installed on the system, as well as make use of some newer processor instructions.
Multi-core, multi-processor possible benefits
MLwiN has been designed for a single CPU and is single-threaded. In multi-processor environments the most benefit MLwiN would gain would be that it could have one of the CPUs to itself without having to fight with other applications and the operating system. If you run MLwiN via R2MLwiN or Stat-JR then you can take advantage of multiple cores by running parallel MCMC chains.
Redesigning MLwiN to take advantage of multiple processors would be a major undertaking, for which we have no immediate plans.
We are currently re-designing our network, which means that our MLwiN users will have to access the data MLwiN uses through a Citrix-"window" and they will not be allowed to put the data onto their local hard disk. This means that MLwiN cannot run on their computers but must reside in the secure network, and either be processed on the Citrix-server/Citrix-desktop, or running on a dedicated application-server
We do not have a Citrix system here to test MLwiN on, so cannot give a definitive answer, however we have had reports of people using MLwiN successfully on this and similar systems. MLwiN 2.10 should have more success that previous versions as it no longer attempts to write files temporarily to its program directory.
One thing to note is that MLwiN loads the whole data set being analysed into memory, so if your users are running models on large data sets on the same machine you may run into memory issues.
Running more complex models can also be quite CPU intensive. Whether this is an issue for you will depend on the number of processors in your server machine and the number of simultaneous MLwiN users. Each instance of MLwiN can only make use of a single processor, so as long as the number of copies running a model is less than or equal to the number of processors in the machine there should be no slowdown compared with running it on the user's machine.