From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,cd86d70d109cd9b1 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.comcast.com!news.comcast.com.POSTED!not-for-mail NNTP-Posting-Date: Wed, 27 Dec 2006 12:58:18 -0600 Date: Wed, 27 Dec 2006 13:46:21 -0500 From: Jeffrey Creem User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: multicore-multithreading benchmarks References: <459192a7$1@news.hcs.net> <4592aabf$1@news.hcs.net> In-Reply-To: <4592aabf$1@news.hcs.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: NNTP-Posting-Host: 24.147.74.171 X-Trace: sv3-i8p/+tXuOXopNYznaQTeb3+oyMI5pJosod00I9JjuHTGxUZKSg94FVUWCIeWBWr6HgfpVDk/VV3jQ7I!i6WqyXK7fq0EgS8Ya6543V/gSJYd69Y/t9oA7tlPRsONEm1nARqC48jPJXLr1oX2OFIFV5xfNQmb!ez8= X-Complaints-To: abuse@comcast.net X-DMCA-Complaints-To: dmca@comcast.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.32 Xref: g2news2.google.com comp.lang.ada:8026 Date: 2006-12-27T13:46:21-05:00 List-Id: Chip Orange wrote: > > Thank you for the reply, and for the Windows API call information. > > It sounds like you're telling me, because you gave me the Windows API, that > there's no "standard" way in Ada to handle any of this? Does this seem like > a lack in Ada to you as it does to me, or am I missing some bigger picture? > You are not missing anything. There is nothing in native Ada that will give you the information that you are looking for (At least not in Ada 83/95 - Since I have not really looked at much of the new tasking features of 2005 I can't say for certain that there is nothing there). > With multicore/cpus being readily available, wouldn't you think any > programmer should be rewriting his applications to take advantage of this, > and so, would need this type of information to do so? Or should we, as a > general rule, just break all programming tasks into threads, assuming that > the OS will handle load balancing better than we could? > I think it sort of depends on what you are doing. When we talk about future multicore machines you often hear people say that nothing will take advantage of more than 2 cores given the way todays software is written. That might be true in many cases. Certainly the work I do (for pay) will scale pretty well beyond 2 cores but it will hit a limit not long after. While the programs typically have a lot of tasks(when compared to the single core they are running on), many of them are sporadic low CPU usage tasks so they will not find a lot of use for more than a few CPUs. It is not an easy problem even if the API information was available. It is not clear that every library call should be looking at CPUs and coming up with a # of threats to start for every low level operations (e.g. sort, matrix multiply, etc). Having said that, building components with build in support for arbitrary numbers of tasks (when appropriate) does allow the person architecting the final program the flexibility to limit the non-portable calls to a small subset of the program and/or to simply make reasonable guesses when putting the program together.