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=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,ee1e7bdc743a3545 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!s36g2000prh.googlegroups.com!not-for-mail From: Anatoly Chernyshev Newsgroups: comp.lang.ada Subject: Re: Multicore problem Date: Tue, 9 Mar 2010 10:48:34 -0800 (PST) Organization: http://groups.google.com Message-ID: <71a2ea77-f97d-4e48-ba82-8322974f5c2b@s36g2000prh.googlegroups.com> References: <80b7542b-38d7-4da2-aa50-1c734b3c516c@q2g2000pre.googlegroups.com> <4b968f0e$0$1996$4f793bc4@news.tdc.fi> NNTP-Posting-Host: 82.178.69.92 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: posting.google.com 1268160514 13060 127.0.0.1 (9 Mar 2010 18:48:34 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 9 Mar 2010 18:48:34 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: s36g2000prh.googlegroups.com; posting-host=82.178.69.92; posting-account=g6PEmwoAAADhFsmVm6Epjviaw4MLU0b5 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 (.NET CLR 3.5.30729),gzip(gfe),gzip(gfe) Xref: g2news1.google.com comp.lang.ada:9493 Date: 2010-03-09T10:48:34-08:00 List-Id: > Perhaps the two tasks/cores are competing for data-cache space, and > causing more cache misses than if a single task/core is active? > > How large is your 3D array, compared to the cache? Right now it is small, 23 Mb, for the purposes of algorithm honing. 2Mb L2 cache. In perspective the array could be 4-8 Gb (not for my current machine, of course). > If this is the problem, you could try to divide the whole problem into > slices so that each slice processes a part of the 3D array that *can* > fit in the cache, but can also be processed in parallel by two > tasks/cores. Not knowing what your processing actually does I can't say > more about how to slice the problem. Each task begins in the cell of its designated area of array, and then does a Markov walk all around the place using the cell pointers.