Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #28661
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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