From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id PAA12559 for caml-red; Thu, 3 Aug 2000 15:12:24 +0200 (MET DST) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id QAA29240 for ; Wed, 2 Aug 2000 16:49:34 +0200 (MET DST) Received: from dv.go.dlr.de (dv.go.dlr.de [129.247.91.3]) by concorde.inria.fr (8.10.0/8.10.0) with ESMTP id e72EnXb23649 for ; Wed, 2 Aug 2000 16:49:33 +0200 (MET DST) Received: (from brosenau@localhost) by dv.go.dlr.de (8.10.1/8.10.1) id e72EnW991530 for caml-list@inria.fr; Wed, 2 Aug 2000 16:49:32 +0200 From: Benedikt Rosenau Message-Id: <200008021449.e72EnW991530@dv.go.dlr.de> Subject: Platforms and OCaml To: caml-list@inria.fr Date: Wed, 2 Aug 2000 16:49:32 +0200 (DFT) Reply-To: Benedikt.Rosenau@debis-sfr.de X-Mailer: ELM [version 2.5 PL3] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: weis@pauillac.inria.fr Hello, I am new to this list and fairly new to OCaml as well. To my other shortcomings belongs that I do not speak French except for a few phrases. Nonetheless, I have some questions regarding the possible use of OCaml on vector computers. Vector computers work by putting iterated pieces of code on an "assembly line", so that each part of the assembly line does one specified operation on its operands and feeds its output into the next station on the assembly line. The trouble with vector computers is that this induces a fixed order of evaluation for the iterated code. Or the other way around: given a certain loop, the compiler has to find out whether this loop is vectorizable, and that task is non-trivial. Further, there are only so many operations, mostly numeric operations, provided by the vector units. Now, I think that a vectorizing compiler for OCaml is a nice vision, almost as nice as world peace, yet I wonder if OCaml cannot be put to a different use. I may be off track here, but it seems that abstract datatypes together with an interface to an existing and vectorizing C compiler might do the trick. One way to convince the compiler that a certain piece of code may be vectorized would be to provide the "assembly line" as a datatype and to ensure that only functions based on the operations in the vector unit get applied to data of this type. From my naive point of view, Bigarrays seem promising, but maybe streams would fare better. Comments, critique? Do I make sense at all? Benedikt