SILC: Simple Interface for Library Collections

Download | Publications | Contact

Introduction

SILC is an application framework that allows users to make use of matrix computation libraries independently of particular computing environments and programming languages.

In the traditional programming style based on direct calls of library functions, users prepare input data such as matrices and vectors using library-specific data structures and carry out library functions by specifying a function's name and its arguments in a prescribed order. This programming style makes user programs dependent upon specific matrix computation libraries in use. Therefore, the users are required to make considerable modification to their user programs if they are in need of other solvers and matrix storage formats provided in different libraries.

User programs in the framework of SILC, on the other hand, utilize matrix computation libraries by depositing matrices and vectors together with user-defined names for later reference, and making a request of computation by means of mathematical expressions in the form of text. Operators in the mathematical expressions are translated into calls of appropriate library functions, which are carried out in separate memory space independently of the user programs. When the results of computation are needed, the user programs fetch them by specifying the names of data to be fetched.

Using SILC, users can easily make use of alternative solvers and matrix storage formats, possibly of different libraries, without modifications in user programs. The user programs in the framework of SILC will be portable, since they do not contain any code fragment that is specific to a particular matrix computation library.

Please consult our publications for more information on the design and implementation of SILC.

SILC is a product of the SSI Project: Development of Software Infrastructure for Large Scale Scientific Simulation.

Tested platforms

SILC has been tested in the following platforms, together with the operating systems and coimplers shown in the table below. The column of "OpenMP" shows whether support for OpenMP is available in each platform.

Platform OS Compilers OpenMP
Sun Fire 3800 Solaris 9 (sparc) Sun ONE Studio 7 Yes
SGI Altix 3700 Red Hat Linux Advanced Server 2.1 Intel C 9.1
Intel Fortran 9.1
Yes
IBM eServer xSeries 335 Red Hat Linux 8.0 Intel C 9.0
Intel Fortran 9.0
Yes
Dell PowerEdge SC 1420 Fedora Core 4 Intel C 9.0 (EM64T)
Intel Fortran 9.0 (EM64T)
Yes
IBM OpenPower 710 SuSE Linux Enterprise Server 9 (ppc) IBM XL C 7.0
IBM XL Fortran 9.1
Yes
Apple PowerMac G5 Mac OS X 10.4.2 IBM XL C 6.0
IBM XL Fortran 8.1
Yes
NEC SX-6i SUPER-UX 13.1 SX-6 C++/SX 1.0 for SX-6
FORTRAN90/SX 2.0 for SX-6
No
Panasonic CF-R3 Fedora Core 3 GCC 3.4.2 No
IBM ThinkPad T42 KNOPPIX 4.0 LinuxTag Japanese Edition GCC 3.3.6 No
Dell Dimension 84000 Microsoft Windows XP Professional SP2 MinGW (GCC 3.2.3) No

Download

Publications

Contact

Bug reports, requests and comments are highly appreciated. Please feel free to send e-mail to the following address.

The SSI Project
devel at ssisc.org