SymGrid-PAR =========== Abyd Al Zain The SymGrid-Par middle-ware orchestrates computational algebra components into a parallel application. SymGrid-Par components communicate using the Symbolic Computation Software Composability Protocol, SCSCP, which in turn builds on OpenMath, an XML-based data description format, designed specifically to represent computational mathematical objects. SymGrid-Par forms a key part of the SymGrid framework that provides high-performance Grid services. In this session, we focus on parallelism and the way we can exploit the capabilities of SymGrid-Par to provide a simple parallel API for heterogeneous symbolic components. SymGrid-Par builds on and extends our Grid-enabled implementation of GUM, a lightweight portable parallel runtime environment for the GpH extension of the standard functional language, Haskell. GUM provides various high-level parallelism services including support for ultra-light-weight threads; virtual shared-memory management; automatic scheduling; automatic thread placement; automatic datatype-specific (un)\-marshalling; implicit communication; load-based thread throttling and thread migration. It thus provides a flexible, adaptive environment for managing parallelism at various degrees of granularity. It has been ported to a variety of shared-memory and distributed-memory parallel machines, and more recently to Globus-based computational Grids. SymGrid-Par comprises two generic interfaces: the "Computational Algebra system to Grid middle-ware'' (CAG) interface links Computational Algebra Systems (CASs) to GUM; and the ``Grid middle-ware to Computational Algebra system'' (GCA) interface conversely links GUM to these systems. The CAG interface is used by computational algebra systems to interact with GUM. GUM then uses the GCA interface to invoke remote computational algebra system functions, to communicate with the computational algebra systems etc. In this way, we achieve a clear separation of concerns: GUM deals with issues of thread creation/coordination and orchestrates the computational algebra system engines to work on the application as a whole; while each instance of the computational algebra system engine deals solely with execution of individual algebraic computations. During the SymGrid-Par sessions, we will present the ideas behind our parallel generic interface and we will practically demonstrate this.