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 will need the following libraries and tools:

Installation

The most preferable way to build Schemik is to use Scons. To build it use scons without any argument, i.e., type in your shell: scons

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

To uninstall Schemik use: scons -c install.

Optionally, you can build Schemik using traditional make but it may be necessary to adjust configuration settings in the 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:
[1] Petr Krajca, Vilem Vychodil. Data Parallel Dialect of Scheme. In Proc. 24th Annual ACM Symposium on Applied Computing (ACM SAC '09), pp. 1938--1940. DOI: 10.1145/1529282.1529713

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 compute particular test in given interpreter.

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