One of the great benefits of computational grids is to give access to a wide range of scientific software and computers with different architectures. It is then possible to use a huge variety of tools for solving the same problem and even to combine these tools in order to obtain the best solution.
Grid service trading (searching for the best combination of software and execution platform according to the user requirements) is thus a crucial issue. Trading relies on the description of available services and computers, on the current state of the grid, and on the user requirements. Given the large amount of services that may be deployed over the grid, this description cannot be reduced to a simple service name.
A sophisticated service specification approach similar to algebraic data type is presented in this paper. Services are described in terms of their algebraic and semantic properties. This is nothing else than proceeding to a description of algorithms and objects properties for a given application domain.
We then illustrate how this specification can be used to determine the service or the combination of services that best answer a user request. As a major benefit, users are not required to explicitly call grid-services, but instead manipulate high-level domain-specific expressions.
Our approach is fully generic and can be used in almost all application domains. We illustrate this approach and its possible limitations within the framework of dense linear algebra. More precisely, we focus on Level 3 BLAS (ACM Trans Math Softw 16:1–17, 1990; ibid 16:18–28, 1990) and LAPACK (Society for Industrial and Applied Mathematics, Philadelphia, 1999). Some examples in nonlinear optimization are also given to demonstrate how generic our approach is and report on experiments where both domains interact to show the multi-domain possibilities.
Grid computing Semantic-based service trading Equational unification Linear algebra Multi-domain