History and Features of CMAT

  1. In 1995, when my wife left for a position at LSU in New Orleans, I had the idea to CMAT due to frustration about some features of SAS/IML. In addition, I needed some easy usable software for testing software submitted to JSS which was just founded by Jan de Leeuw then. My work contract with SAS Institute from early 1984 permitted me to write my own software at my spare time as long as I would not have any profit from it.

  2. Major points of frustration with IML were

  3. Since I was tired of learning new languages I decided just to stick with the C language and extend that straightforward to my data objects and types. And I still think, I was right with that, even though some of my frieds have been asking me to make my language compatible with that of Matlab.

  4. For a language I needed a parser and I did not want to invent the wheel again. Talking to a friend he told me of Yacc and Lex which was then available in the Unix-like Domain OS on the Apollo computers which I was able to buy from SAS Institute when it moved to HP Unix work stations just then. As I was never able to convince anybody of SAS to work with me on this I had to figure out how to work with Yacc and Lex myself and it took me several months to write the barebones of a grammar for some small subpart of the C language extended to the more general data objects I needed. Either I was too lazy or too dumb to do good error testing in my Yacc script which is still a pain when somebody gets the message "syntax error".

  5. CMAT was intended to use public domain software and needed to combine static and dynamic (DLLs) libraries of C/C++ and Fortran code. The Apollo OS included compilers for both, C and Fortran, and I was able to bind static libraries together. Later when I had to work on PCs with Microsoft Windows I switched to Yacc and Lex from MKS and for the C/C++ and Fortran compilation to the free Watcom C/C++ and Fortran compilers and which also permitted DLLs. At the same time I started using emacs and bash which are both free of charge and which have been improved very much since then. In 2012 I found an opportunity to switch from the Watcom compiler platform to MS Visual Studio (for C/C++) and Intel Parallel Studio (for Fortran and additional features) and found a number of bugs due to the improved testing, and I'm still using emacs and bash.

  6. For documentation I decided early on for Tex and LaTex which was free on Unix as it is now in Linux. Later I wanted more comfort and purchased PCTeX for Windows.

  7. There was a number of software pieces which I was able to include into CMAT without major changes but only when the copyright conditions permitted that or I had the written agreement of the author. Some other software with more restrict copyright conditions had to be completely reprogrammed, many times with better numerical features.

  8. In 1995 there was still no Blas or Lapack available and I had to invent some similar tools myself. Later (and still before Matlab:-) I had both, Blas and Lapack running in CMAT. And as soon as it was available I added the great Arpack to my tools.

  9. The major components of CMAT are:

  10. For nonprofit applications, CMAT is free of charge and can be downloaded after requiring a password. A number of documents are available without password, some here.

Some Benchmarks: State of February 10, 2013

I'm using three DELL Precision Desktop PCs:
  1. PC1: DELL Precision 1650 bought in 2012: running 32-bit Windows 7 Professional
    One 250 GB hard drive: 3.5 inch Serial ATA (7.200 Rpm),
    3rd Gen Intel Core I7-3770 Processor (Quad Core 3.40 GHz Turbo, 8 MB w/HD Graphics 4000),
    4 GB RAM 1600 MHz DDR3 Non-ECC,
    using MS Visual Studio and Intel Parallel Studio XE 213, compiled in Release mode (optmization process takes about 30 minutes),
    size of the executable 21.5 MB
  2. PC2: DELL Precision 3500 bought in 2012: running 64-bit Windows 7 Professional
    Two 300 GB hard drives: 15,000 Rpm SAS,
    Intel Xeon W3670 (Six Core 3.20 GHz, 12 MB Cache, 4.8 GT/s Intel QPI),
    12 GB RAM 1333 MHz DDR3 ECC UDIMM,
    using MS Visual Studio and Intel Parallel Studio XE 213, compiled in Debug mode ,
    size of the executable 38.6 MB
  3. PC3: DELL Precision 1500 bought in 2001: running 32-bit Windows XP Professional
    Two 35 GB SCSI hard drives (10.000 Rpm) and an older Intel Pentium Processor,
    using very slow Watcom C/C++ and Fortran compilers in Debug mode ,
    size of the executable 25.9 MB

Example in

cmat/test


tborut2.inp

tlrallv2.inp

tlrallv3.inp

tlrallv4.inp

tmicro2.inp

tmixrpana.inp

tmixrpan2.inp

trand2.inp

tranfor2.inp

tsvm12.inp

tsvm13.inp

tsvm23.inp

tsvm24.inp

tsmp3.inp

Time in Secs

for PC1


2812

3418

1853

1450

2736

345

342

1799

2389

1156

1542

1162

18349

19262

Time in Secs

for PC2


4785

6466

2752

2253

5627

1382

1386

9443

3891

3283

2781

5123

100491

81609

Time in Secs

for PC3


6605

12874

9917

8027

3576 ???

4839

4532

24425

7570

-

-

-

-

-


Back to Homepage