Schemik

 
  an implicitly parallel interpreter of Scheme

Schemik is a high-level lexically-scoped implicitly-parallel dialect of Scheme and Common LISP, this means the parallel execution of programs is done independently of the programmer and each program written in Schemik always produces the same results no matter which parts of the program are executed simultaneously.

Features

Quick start

Download

You can get the latest version of Schemik from the SourceForge.

To compile and run Schemik you need the following libraries and tools:

Installation

The most preferable way to build Schemik is to use Scons. In order to build it, just run the scons command without any argument.

Installation command: scons install (optionally, you may use: scons install prefix=/foo/bar).

Uninstallation command: scons -c install.

Optionally, you can build Schemik using the traditional make command, but it may be necessary to adjust the configuration settings in config.h.

Running Schemik

./schemik -t 0 -- starts Schemik in a sequential mode, i.e., using only one CPU core

./schemik -t 5 -- starts Schemik running in 5 threads

./schemik -t 10 -s scm/fib30.scm -- computes 30th fibonacci number using 10 threads and quits

./schemik -t 10 -c "(define (fib x) (if (< x 3) 1 (+ (fib (- x 1)) (fib (- x 2))))) (display (fib 33))" -- computes 33th fibonacci number using 10 threads and quits

License

Schemik is distributed under the terms of GNU General Public License Version 3 or (at your option) any later version.

Users in academia are kindly asked to cite the following resources if the software is used to pursue any research activities which may result in publications:

Despite the fact that Schemik is available under the terms of open source license, its development is closed. This means, publicly available release may not entirely conform to software as described in published papers. For certain reasons it may lack some features or some features may be implemented differently. If you have any questions or comments in regard to Schemik, feel free to contact me. (krajcap (at) inf.upol.cz)

Screenshots

graph no.1

graph no.2

Comparison with other interpreters

 SchemikGuileMzSchemeTinySchemeMiniScheme
fib4.402.461.6734.0822.09
fibfp5.523.743.5836.70failed
fibc**3.6831.1212.684.992.97
sum4.162.841.4239.3524.73
sumfp5.574.043.5939.21failed
tak3.552.230.7724.6214.95
ctak**1.264.125.330.720.44
cpstak4.823.642.6331.0519.03
bubblesort*3.781.893.9719.271351.72
combi1**2.042.542.24403.743385.88
combi2*3.694.083.081537.8510543.81
hanoi2.790.871.245.744.01
mazefun3.842.211.3227.688.58
nqueens2.420.780.449.537.80
primes4.982.341.9027.2521.29
permut*5.477.274.631274.1014821.43
powerset**5.107.595.592683.2021133.95
quicksort*3.795.201.561967.83> 17 hrs

Each number represents time (in seconds) it takes to execute the given program.

© 2010 Petr Krajca, krajcap (at) inf.upol.cz Get Schemik at SourceForge.net. Fast, secure and Free Open Source software downloads