MicroAPL Sustaining News
VECTOR icon back issues > contents of Vector 21.4 For best results, install APL385 Unicode and use Firefox

News from Sustaining Members

MicroAPL Ltd

The launch by AMD of a 64-bit version of the x86 architecture, a couple of years ago, has opened the way for low-cost, 64-bit systems in the mass market. Today, you can buy a desktop machine – or even a laptop – with a 64-bit processor, for just a few hundred pounds. Intel have now followed AMD with a binary-compatible equivalent, and, over the next few months, we can expect 64-bit x86 systems to become commonplace. 64-bit versions of Windows and Linux are available to run on this architecture. In addition, Apple has sold 64-bit Macintoshes, based on the PowerPC architecture, for some time. 64-bit Servers are, of course, well established.

Such machines can address extraordinary amounts of memory. 32-bit systems are limited to at most 4Gb of memory address space, and usually this is not all available to user processes (Windows, for example, normally has a limit of 2Gb). Today, XP Professional x64 Edition supports up to 128Gb of RAM and 16 Terabytes of virtual memory. In the future, even more memory will be usable. And the cost of RAM has fallen to such an extent that it is already possible to configure desktop machines with tens of gigabytes of memory for a couple of thousand pounds.

Of course, it is not just the size of workspace which matters; it is also the maximum size of arrays. 32-bit APL systems use 32-bit slots to hold array sizes and dimensions. Thus, even if the processor can address more than 32-bits and the APL interpreter provide access to a workspace size greater than 4Gb, it does not follow that the APL interpreter will necessarily handle arrays which will take full advantage of this memory.

For this reason, MicroAPL is introducing a fully 64-bit version of APLX, which will overcome all limitations in workspace and array size for the foreseeable future. APLX64 is this new product. It is initially being made available for Linux and Windows, with a MacOS version following. In APLX64, all array dimensions are 64-bit, so there are effectively no limits other than available memory on the number of elements in any array, or the maximum length along any dimension. Integers are also 64-bit (otherwise you would have to use floating-point numbers to index arrays!). Booleans remain as one bit per element, making it possible to handle huge Boolean arrays without excessive memory requirements. Huge native files and component files are of course fully supported.

We believe this product extends the reach of APL upwards to applications which previously were beyond its reach. These include modelling and simulation using huge data sets, and OLAP applications for analysis and aggregation of large volumes of transactional data. In this new world, you do not need to compromise: you can just load the entire database into your APL workspace (the APLX ⎕SQL system function will be handy here!). In some ways, this is taking APL back to the kinds of application where it used to be strong, but where it lost ground because the amount of data became too big to fit in the workspace. The benefit is direct manipulation, in the APL workspace, of data which other languages have to process piecemeal.

APLX64 is currently in beta, and will be available in the first quarter of 2006.


VECTOR home back issues > contents of Vector 21.4