Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #28661

Re: Forth reinvention

From anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups comp.lang.forth
Subject Re: Forth reinvention
Date 2014-02-21 15:11 +0000
Organization Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID <2014Feb21.161123@mips.complang.tuwien.ac.at> (permalink)
References <b5ec955a-146f-41ea-a227-22e4224cab49@googlegroups.com> <o7KdncO2m9MJxJvOnZ2dnUVZ_tOdnZ2d@supernews.com> <le5pq8$ie9$1@dont-email.me> <UpSdnZ24iMXIM5vOnZ2dnUVZ_hqdnZ2d@supernews.com> <koGdnds8fYEKoZrOnZ2dnUVZ_jidnZ2d@supernews.com>

Show all headers | View raw


Andrew Haley <andrew29@littlepinkcloud.invalid> writes:
>This is old-style Java method that calculates the sum from
>lo <= n < hi of some function f(n):
>
>    static double sum(int lo, int hi, IntToDoubleFunction f) {
>        double res = 0;
>        for (int i = lo; i < hi; i++)
>            res += f.apply(i);
>        return res;
>    }
>
>The exact details of the syntax don't matter, but it's equivalent to
>the Forth
>
>: sum ( xt lo hi -- f)
>   0.0e  swap do  i s>f dup execute f+  loop drop ;
>
>New-style Java looks like this:
>
>    static double sum(int lo, int hi, IntToDoubleFunction f) {
>        return IntStream.range(lo, hi).mapToDouble(f).sum();
>    }
>
>Here, we create a stream of integers from lo to hi, apply the function
>f to every element, and sum the results.  It's the same calculation,
>but it's inherently parallel: there is no implied ordering from lo to
>hi, so this computation can be spread over many processors.

Either it's parallel, or it's not the same calculation.  The
associative law does not hold for floating-point numbers, so the
result will be different in general (there may be some parameters for
which the results are the same).

>Of course
>a heoric optimizing compiler could determine that the first program
>could be converted into parallel execution, but that's hard to do in
>general.

The compiler must not rearrange the additions, so there is no
parallelization potential there.  It could do all the calls to f in
parallel (and somewhat in parallel to the summation), which may or may
not provide a parallelization speedup.

So the new style offers a parallelization opportunity not present in
the old style, but rounding behaviour will probably vary between runs
(right?).

I find it interesting that this style looks like a pipeline (with "."
instead of "|"); I guess that the functions may empoly data
parallelism in addition to pipeline parallelism, though.

>I'm sure there could be a nice Forth equivalent of the
>second form, but it would take some designing.

I did some presentation on pipeline/stream parallelism for Forth some
years ago:

@Unpublished{ertl08ft,
  author =       {M. Anton Ertl},
  title =        {Die Multicore-Herausforderung},
  note =         {Talk given at Forth-Tagung 2008},
  url =          {http://www.complang.tuwien.ac.at/papers/ertl08ft.pdf},
  year =         {2008}
}

- anton
-- 
M. Anton Ertl  http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
     New standard: http://www.forth200x.org/forth200x.html
   EuroForth 2013: http://www.euroforth.org/ef13/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Forth reinvention dambere@web.de - 2014-02-20 01:19 -0800
  Re: Forth reinvention "Rod Pemberton" <dont_use_email@xnohavenotit.cnm> - 2014-02-20 05:07 -0500
    Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-20 14:56 +0000
      Re: Forth reinvention "Rod Pemberton" <dont_use_email@xnohavenotit.cnm> - 2014-02-20 16:16 -0500
        Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-20 23:25 +0000
          Re: Forth reinvention "Rod Pemberton" <dont_use_email@xnohavenotit.cnm> - 2014-02-20 20:42 -0500
            Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-21 12:41 +0000
  Re: Forth reinvention Hans Bezemer <the.beez.speaks@gmail.com> - 2014-02-20 11:18 +0100
    Re: Forth reinvention dambere@web.de - 2014-02-20 02:36 -0800
      Re: Forth reinvention Hans Bezemer <the.beez.speaks@gmail.com> - 2014-02-20 17:35 +0100
        Re: Forth reinvention dambere@web.de - 2014-02-20 11:34 -0800
          Re: Forth reinvention "Elizabeth D. Rather" <erather@forth.com> - 2014-02-20 09:53 -1000
          Re: Forth reinvention Paul Rubin <no.email@nospam.invalid> - 2014-02-20 12:23 -0800
            Re: Forth reinvention dambere@web.de - 2014-02-20 14:00 -0800
              Re: Forth reinvention Paul Rubin <no.email@nospam.invalid> - 2014-02-20 14:23 -0800
                Re: Forth reinvention dambere@web.de - 2014-02-22 02:21 -0800
                Re: Forth reinvention AKK <akk@nospam.org> - 2014-02-22 12:02 +0100
              Re: Forth reinvention Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-02-21 04:38 -0600
          Re: Forth reinvention Mark Wills <markrobertwills@yahoo.co.uk> - 2014-02-20 12:35 -0800
            Re: Forth reinvention Paul Rubin <no.email@nospam.invalid> - 2014-02-20 13:38 -0800
  Re: Forth reinvention m.a.m.hendrix@tue.nl - 2014-02-20 03:59 -0800
    Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-20 15:11 +0000
      Re: Forth reinvention m.a.m.hendrix@tue.nl - 2014-02-20 07:41 -0800
  Re: Forth reinvention Richard Owlett <rowlett@pcnetinc.com> - 2014-02-20 06:38 -0600
    Re: Forth reinvention dambere@web.de - 2014-02-20 12:03 -0800
  Re: Forth reinvention Julian Fondren <julian.fondren@gmail.com> - 2014-02-20 07:08 -0800
  Re: Forth reinvention "Elizabeth D. Rather" <erather@forth.com> - 2014-02-20 09:37 -1000
    Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-20 20:50 +0000
      Re: Forth reinvention "Elizabeth D. Rather" <erather@forth.com> - 2014-02-20 15:39 -1000
        Re: Forth reinvention albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-02-21 10:50 +0000
        Re: Forth reinvention Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2014-02-21 11:10 +0000
          Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-21 13:50 +0000
        Re: Forth reinvention Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-02-21 05:46 -0600
          Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-21 12:55 +0000
          Re: Forth reinvention anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-02-21 15:11 +0000
            Re: Forth reinvention Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-02-22 09:23 -0600
        Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-21 12:38 +0000
        Re: Forth reinvention anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-02-22 13:29 +0000
          Re: Forth reinvention "Elizabeth D. Rather" <erather@forth.com> - 2014-02-22 07:52 -1000
            Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-22 19:06 +0000
            Re: Forth reinvention anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-02-23 13:40 +0000
    Re: Forth reinvention "Rod Pemberton" <dont_use_email@xnohavenotit.cnm> - 2014-02-20 20:40 -0500
      Re: Forth reinvention "Elizabeth D. Rather" <erather@forth.com> - 2014-02-20 18:43 -1000
        Re: Forth reinvention Hans Bezemer <the.beez.speaks@gmail.com> - 2014-02-21 13:16 +0100
      Re: Forth reinvention stephenXXX@mpeforth.com (Stephen Pelc) - 2014-02-21 10:49 +0000
    Re: Forth reinvention anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-02-21 14:50 +0000
      Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-21 16:28 +0000
        Re: Forth reinvention anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-02-22 12:54 +0000
          Re: Forth reinvention "Rod Pemberton" <dont_use_email@xnohavenotit.cnm> - 2014-02-22 10:27 -0500
          Re: Forth reinvention "Alex McDonald" <blog@rivadpm.com> - 2014-02-22 17:49 +0000
      Re: Forth reinvention Bernd Paysan <bernd.paysan@gmx.de> - 2014-02-21 20:51 +0100
        Re: Forth reinvention Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-02-22 09:39 -0600
          Re: Forth reinvention Bernd Paysan <bernd.paysan@gmx.de> - 2014-02-23 02:40 +0100
            Re: Forth reinvention Paul Rubin <no.email@nospam.invalid> - 2014-02-22 19:24 -0800
              Re: Forth reinvention Bernd Paysan <bernd.paysan@gmx.de> - 2014-02-23 22:48 +0100
            Re: Forth reinvention Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-02-23 04:39 -0600
              Re: Forth reinvention Bernd Paysan <bernd.paysan@gmx.de> - 2014-02-23 22:46 +0100
                Re: Forth reinvention Paul Rubin <no.email@nospam.invalid> - 2014-02-23 14:26 -0800
                Re: Forth reinvention Bernd Paysan <bernd.paysan@gmx.de> - 2014-02-24 02:44 +0100
                Re: Forth reinvention Spam@ControlQ.com - 2014-03-03 12:43 -0500
                Re: Forth reinvention Paul Rubin <no.email@nospam.invalid> - 2014-03-03 10:06 -0800
                Re: Forth reinvention Andrew Haley <andrew29@littlepinkcloud.invalid> - 2014-02-24 03:59 -0600
  Re: Forth reinvention mike73900@gmail.com - 2014-03-03 14:04 -0800
    Re: Forth reinvention mhx@iae.nl - 2014-03-05 06:59 -0800
      Re: Forth reinvention Matthias Koch <matthias.koch@hot.uni-hannover.de> - 2014-03-05 16:33 +0100
      Re: Forth reinvention Mark Wills <markwills1970@gmail.com> - 2014-03-05 09:08 -0800
        Re: Forth reinvention mhx@iae.nl - 2014-03-05 10:47 -0800
  Re: Forth reinvention AKK <akk@nospam.org> - 2014-03-07 07:30 +0100
    Re: Forth reinvention Lars Brinkhoff <lars.spam@nocrew.org> - 2014-03-07 07:55 +0100
    Re: Forth reinvention albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-03-07 09:29 +0000
      Re: Forth reinvention AKK <akk@nospam.org> - 2014-03-07 12:04 +0100
      Re: Forth reinvention "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-03-07 17:03 -0500
        Re: Forth reinvention Mark Wills <markwills1970@gmail.com> - 2014-03-08 05:31 -0800

csiph-web