From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 21B07BBAF for ; Tue, 22 Dec 2009 14:44:42 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aj0CAHBcMEvRVdrVkGdsb2JhbACPb4F2gheGdz8BAQEBCQkMBxMDqjaBMoUwiFIBAgMFhC4E X-IronPort-AV: E=Sophos;i="4.47,436,1257116400"; d="scan'208";a="52650986" Received: from mail-bw0-f213.google.com ([209.85.218.213]) by mail4-smtp-sop.national.inria.fr with ESMTP; 22 Dec 2009 14:44:17 +0100 Received: by bwz5 with SMTP id 5so4141151bwz.3 for ; Tue, 22 Dec 2009 05:44:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=GN40lO5Ixbg0Z9XyhPFVgDvDBtiBwIEMIFkvEIbhpMI=; b=oKlv/p1zH3vOy+w1KqO6KaAbcBK0wARau7syOrUg8gJcIatGwIVkdobnOvuvCweCHo phLCpXb7WIPIy1yAScXbAsiAjJ0pj77RzPC3qWAqJfpXQfM8KYWzJpWent9QUO8dltKS AHLo0U9OVpFVY/BVt6FS4j11lPE4t0Zp97USE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=wioiWu0457oR51Zs7x4j9nwEyqWSwRjLuL81vd1IpePvYTlOCeEcI2SB3pG3Ae3dZQ UxrlzZqOa7xt7KbBdznKxITMRWehE28Lb5wQLGGNS7dYdt5qrT226MsJqdwEuc6Ayj7M MhcNFbM2HPbwcTP8EaNcyol8QJ9LegzH0qpeg= MIME-Version: 1.0 Received: by 10.204.4.203 with SMTP id 11mr138885bks.69.1261489456140; Tue, 22 Dec 2009 05:44:16 -0800 (PST) In-Reply-To: <320e992a0912220511s6e5f271ftb0a72b73e9daf437@mail.gmail.com> References: <3d13dcfc0911250305i43a684e4u5a96ec420b6ce350@mail.gmail.com> <200911292311.29580.jon@ffconsultancy.com> <4a708d20911291416x2be905f7p93f559543a77d97f@mail.gmail.com> <3ae3aa420911300830h63a04b21r2e09fb4e34cdb7f7@mail.gmail.com> <4a708d20912200638q5e7d72acu9cae3b564ada085d@mail.gmail.com> <3ae3aa420912212040i23309f7cw4485db33352c1853@mail.gmail.com> <320e992a0912220511s6e5f271ftb0a72b73e9daf437@mail.gmail.com> Date: Tue, 22 Dec 2009 15:44:16 +0200 Message-ID: <320e992a0912220544oe36edafkc184d9fbbbd2b2a7@mail.gmail.com> Subject: Re: [Caml-list] Looking for information regarding use of OCaml in scientific computing and simulation From: Eray Ozkural To: linasvepstas@gmail.com Cc: Lukasz Stafiniak , caml-list Content-Type: text/plain; charset=ISO-8859-1 X-Spam: no; 0.00; ocaml:01 eray:01 ozkural:01 eray:01 ozkural:01 simd:01 higher-level:01 parallelism:01 parallelism:01 high-level:01 compiler:01 compiler:01 ocaml:01 bilkent:01 2009:98 On Tue, Dec 22, 2009 at 3:11 PM, Eray Ozkural wrote: > However, let's not forget about the new GPU architectures, which are > sort of hybrid. The newer GPUs will have more exotic on-chip > interconnection networks. Some more clarification, as the number of cores increase, you would expect more of an MIMD architecture rather than SMP-like shared memory+cache or the SIMD that some architectures were based on (like the Cell processor etc.) Or a hybrid one, who knows? The certain picture at the moment is that, the architectures are getting *more* complex to program and to optimize for. I don't think we can neglect the use of a shared memory space. Among other things, with multiple cores, it allows us to directly implement the PRAM algorithms that are prevalent in parallel computing literature. On the other hand, most of the existing parallel applications assume the traditional cluster architecture. I don't think we can say at the moment, this or that programming *paradigm* is the best, but I think it's high time we experiment with higher-level constructs that are fitting for functional languages. Sure, you can have parallelism with just a multi-threading construct and an atomicity construct but I think there is much more to parallelism than that for a high-level language. That stuff we have in parallel assembly, it would be the sort of code that a compiler generates perhaps. I also anticipate that it should not be very difficult to write a parallelizing compiler for ocaml. It would be great to directly target all those nifty register files etc. in the NVIDIA GPU's. :) And it seems perhaps the only sane way to make the kind of fine optimizations that a complex architecture would call for. Best, -- Eray Ozkural, PhD candidate. Comp. Sci. Dept., Bilkent University, Ankara http://groups.yahoo.com/group/ai-philosophy http://myspace.com/arizanesil http://myspace.com/malfunct