|
Project Information
Featured
Downloads
|
ScalaLab: Matlab-like scientific computing in ScalaProject SummaryThe ScalaLab project aims to provide an efficient scientific programming environment for the Java Virtual Machine. The scripting language is based on the Scala programming language enhanced with high level scientific operators and with an integrated environment that provides a Matlab-like working style. Also, all the huge libraries of Java scientific code can be easily accessible. The main potential of the ScalaLab is speed and flexibility. The statically typed Scala language can provide speeds of scripting code similar to pure Java. Also, the environment can cooperate effectively with Java. A major design priority of ScalaLab is its user-friendly interface. We like the user to enjoy writing scientific code, and with this objective we design the whole framework. ScalaLab provides the ScalaSci scripting engine, based on the new Scala programming language, that obtains scripting speed by resolving method calls at compile time ("statically typed"). The scripting code is extremely fast, close to Java (sometimes slower, sometimes faster), and usually faster from equivalent Matlab .m scripts! Three versions of ScalaLab are provided: a. ScalaLab210 based on Scala 2.10 branch, b. ScalaLab292 based on Scala 2.9.2 final, c. ScalaLab282 based on Scala 2.8.2 final. ATTENTION: ScalaLab is developed with JDK7, so make sure to have JDK7 installed. I run ScalaLab without problems with: java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode) Perhaps useful to many users, is the following modification of the RunScalaLab.sh script, in order to run ScalaLab on an installed JDK7 next to JDK6 (/usr/java/jdk1.7.0 corresponds to your JDK7 installation directory): JAVA_HOME=/usr/java/jdk1.7.0 $JAVA_HOME/bin/java -Xss10m -Xms200m -Xmx1000m -jar Scalalab291.jar ScalaLab ScreenShotScalaLab is a simple to use environment that presents a rich Graphical User Interface to the user and a Matlab-like way of working. We present an illustrative snapshot where the FastICA toolbox has been used to separate a signal mixture by performing Independent Component Analysis (ICA).
InstallationTo install and execute ScalaLab, download the executable featured downloads, either for the Scala 2.8.2 based version,or Scala 2.9.2 final, or the recent Scala 2.10 based and unzip them. Then execute the appropriate .bat script for Windows or the corresponding .sh script for UNIX users. The script initiates the appropriate Native BLAS libraries, and configures some JVM parameters. Thus the disk configuration of ScalaLab should be:
The most recent updates (26 -May -2012)ParallelColt library of Piotr Wendykier is included with ScalaLab Libraries. Some new DSP routines of Darwin Airola added in ScalaSci. Minor improvements Routines inspired from Numerical Recipes implemented in Java/Scala Redesign of FFT routines, Fast plot of large signals ScalaLab AdvantagesThe main advantages of ScalaSci that equip it with great potential are:
Documentation for ScalaLabScalaLab provides a lot of on-line help and demo examples. Also, there exist some material in the Downloads section in .pdf format that document some aspects of ScalaLab. The philosophy of ScalaLab is not to re-implement everything in Scala, but instead to exploit high quality Java scientific software either with Java, or preferably by wrapping the code with Scala classes. Although any Java scientific library can be utilized as toolbox, ScalaLab includes by default some excellent Java scientific libraries. Work is in progress to utilize more effectively these libraries by designing Scala based high level interfaces. These integrated libraries are:
Useful Books to use with ScalaLabScalaLab can be utilized and as an educational tool for Numerical Analysis, Computational Intelligence and Engineering courses. Since the ScalaLab editor can execute directly Java code, many Java code chunks can be easily executed. Of course, Scala offers a much more effective programming framework. The following are some excellent scientific books that can be studied using ScalaLab for programming exercises:
Also, some excellent Scala books can be used with ScalaLab, since ScalaLab builds upon the full Scala distribution. The classic book for Scala is the Odersky's book (listed first), but also the other ones are very good books and can complement the reader's skills:
AttentionThe default stack and heap size of the JVM are sometimes not adequate. Thus it is better to execute ScalaLab with something like: java -Xss20m -Xms200m -Xmx1000m -jar scalalab.jar something that the RunScalaLab.bat and RunScalaLab.sh scripts perform. Java 3DIn order the VisAD Scientific Data Visualization library to operate on 3-D plots, we recommend to install the Java 3D system from Oracle (http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html) for your platform. ScalaLab ToolboxesAny Java Library can be used as a ScalaLab Toolbox. However, for some of them work is in progress in order to provide better syntax with the superb facilities of the Scala language. You can find some of these toolboxes at the downloads section. ScalaLab Development discussion group Mailing Listhttp://groups.google.com/group/scalalab-dev-group ScalaLab Developer Stergios Papadimitriou
Technology Education Institute of Kavala
Department of Information Management
Greece
email: sterg@teikav.edu.gr
|