<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body text="#000000" bgcolor="#ffffff">
One source says that CUDA can do anything you can do in C<br>
other than function pointers and recursion. Probably this<br>
means no stack, locals are allocated at fixed addresses<br>
just like globals, each procedure has one global cell<br>
as a return address, etc.<br>
<br>
Dan Weinreb wrote:
<blockquote type="cite" cite="mid:4A144491.9010507@itasoftware.com"> <br>
<br>
Rainer Joswig wrote:
<blockquote cite="mid:7B388FAC-4AC2-4E2D-8BF1-F2C442DB8706@lisp.de" type="cite"><br>
<div>sm, etc.</div>
<div><br>
</div>
<div>A special challenge is the garbage collector. Today we have
few
concurrent threads. In the near future one</div>
<div>may have 64 concurrent threads running on a desktop computer
CPU. That means when all 64 threads are</div>
<div>busy, they may produce garbage 64 times as fast as a single
thread. So it might be not that clever</div>
<div>to run the garbage generator with 64 threads and the garbage
collector with only one thread (while halting other</div>
<div>Lisp computation).</div>
</blockquote>
There's been a lot of interesting work done in that area, too. The
JRockit<br>
implementation of the Java Virtual Machine has both "concurrent" and<br>
"parallel" GC technology, which I believe has been published by the<br>
people who did it. (The company is in, I think, Sweden, and was<br>
bought by BEA (when I worked there), which in turn was bought<br>
by Oracle. You can still get it for free from Oracle, I'm pretty sure.)<br>
<blockquote cite="mid:7B388FAC-4AC2-4E2D-8BF1-F2C442DB8706@lisp.de" type="cite">
<div><br>
</div>
<div>It would also be interesting to identify general issues with
Common Lisp with respect to implementing it with multiple concurrent
threads - for example to compare implementations and to identify areas
where implementations need to do something.</div>
</blockquote>
I once asked Gary Byers about how CCL deals with the issue that<br>
the Java people refer to as the "memory model". He sent me an<br>
answer that I didn't quite grasp, and then I dropped the conversation,<br>
but I'm still interested. The Java Language Spec had a number of<br>
rules intended to make sure everything was well-defined in the<br>
face of complicated cache coherency, not to mention compilers<br>
that re-order operations, and so on. The original memory model<br>
was found to have some bad properties, and William Pugh of<br>
U. Delaware (I think) discovered these problems and figured<br>
out how to fix them. I don't know what's happened since<br>
then.<br>
<br>
-- Dan<br>
<blockquote cite="mid:7B388FAC-4AC2-4E2D-8BF1-F2C442DB8706@lisp.de" type="cite">
<div><br>
</div>
<div>A useful 'conservative' approach is to advance the
capabilities
for programming with concurrent threads. But if a user's application
domain offers chances for parallel computation, concurrent threads
might not be the best answer. For the average user, the GPU approach
could make a big difference in user experience in the next years - my
guess.</div>
<div><br>
</div>
<div>Regards,</div>
<div><br>
</div>
<div>Rainer Joswig</div>
<div><br>
</div>
<br>
<div>
<div>Am 19.05.2009 um 14:05 schrieb Alexander Repenning:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="">
<div>not so fast ;-)</div>
<div><br>
</div>
<div>The "how can we make use of multiple cores" is currently on
the the hottest funding topics supported by NSF, DOE, Microsoft, .....</div>
<div><br>
</div>
<div>Perhaps it is the Lisp way to look at architectures such as
the x86 and see mostly limitations when indeed there are plenty of
opportunities. This is not about registers but about enabling end user
programmers such as scientists to make use of parallelism. The big
question is how to reconceptualize programming. One of the main
problems is the need to overcome bad algorithmic assumptions especially
the use of unnecessary loops. For instance, in Bioinformatics textbooks
are full of loop based implementations of algorithms dealing with huge
data structures such as gene sequences. In many cases one could replace
sequential loops with parallel execution.</div>
<div><br>
</div>
<div>Zoom out of the low level view of things. What could multi
core Lisp do? Look at the computational challenges that users are
dealing with. Try to come up with new computational paradigms that
could help. Lisp could be a great platform to explore these
issues. Careful: if you can contribute to this you may actually receive
funding.</div>
<div><br>
</div>
<div>alex</div>
<div><br>
</div>
<div><br>
</div>
<br>
<div>
<div>On May 18, 2009, at 10:45 AM, Brian Mastenbrook wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite"><span class="Apple-style-span" style="color: rgb(0, 0, 0);">On Mon, 2009-05-18 at 10:13 -0400, Glen
Foy wrote:<br>
<br>
<blockquote type="cite">My ignorance of compiler design is
breathtaking, but could multi-core<br>
</blockquote>
<blockquote type="cite">compiler techniques be used to
compensate
for Intel's register-starved<br>
</blockquote>
<blockquote type="cite">architecture?<br>
</blockquote>
<br>
In a word, no.</span></blockquote>
</div>
<br>
<div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<div style=""><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;">
<div style="margin: 0px;"><font size="3" face="Helvetica" style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">Prof. Alexander Repenning</font></div>
<div style="margin: 0px;"><br class="khtml-block-placeholder">
</div>
<div style="margin: 0px;">University of Colorado</div>
<div style="margin: 0px;">Computer Science Department</div>
<div style="margin: 0px;">Boulder, CO 80309-430</div>
<div style="margin: 0px;"><br class="khtml-block-placeholder">
</div>
<div style="margin: 0px;"><font size="3" face="Helvetica" style="font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">vCard: <a moz-do-not-send="true" href="http://www.cs.colorado.edu/%7Eralex/AlexanderRepenning.vcf">http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf</a></font></div>
<br class="Apple-interchange-newline">
</span></span></span></div>
</span> </div>
<br>
</div>
_______________________________________________<br>
Openmcl-devel mailing list<br>
<a moz-do-not-send="true" href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br>
<a class="moz-txt-link-freetext" href="http://clozure.com/mailman/listinfo/openmcl-devel" moz-do-not-send="true">http://clozure.com/mailman/listinfo/openmcl-devel</a><br>
</blockquote>
</div>
<br>
<div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<div style="">
<div>
<div style="">
<div style="">
<div style="">
<div style="">
<div style="">
<div>
<div style="">
<div style="">
<div>Rainer Joswig, Hamburg, Germany</div>
<div><a moz-do-not-send="true" href="http://lispm.dyndns.org/">http://lispm.dyndns.org/</a></div>
<div><a moz-do-not-send="true" href="mailto:joswig@lisp.de">mailto:joswig@lisp.de</a></div>
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</span><br class="Apple-interchange-newline">
</div>
<br>
<pre wrap=""><hr width="90%" size="4">
_______________________________________________
Openmcl-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Openmcl-devel@clozure.com" moz-do-not-send="true">Openmcl-devel@clozure.com</a>
<a class="moz-txt-link-freetext" href="http://clozure.com/mailman/listinfo/openmcl-devel" moz-do-not-send="true">http://clozure.com/mailman/listinfo/openmcl-devel</a>
</pre>
</blockquote>
<pre wrap="">
<hr width="90%" size="4">
_______________________________________________
Openmcl-devel mailing list
<a href="mailto:Openmcl-devel@clozure.com" class="moz-txt-link-abbreviated">Openmcl-devel@clozure.com</a>
<a href="http://clozure.com/mailman/listinfo/openmcl-devel" class="moz-txt-link-freetext">http://clozure.com/mailman/listinfo/openmcl-devel</a>
</pre>
</blockquote>
</body>
</html>