Re: [Parralelisms]

beranger six <[email protected]>
Newsgroups gmane.comp.gnu.gnucap.devel
Message-ID <[email protected]>
Le 05/03/2014 18:00, Felix a écrit :
> it might be tricky to find a good partition, and your tree-view might
> give the right ideas. to me it does not make sense to schedule
> everything in advance. for example, you may want to start with just 4
> threads, and take the first of T1..T4 that finishes to become T5. you
> cannot know which, as it depends on which nodes have changed
> (a.is_changed(mm)).
>
> if there is a matrix where no such partition induces a useful
> parallelization scheme, i'd be interested to know!

Thank you for the answer, you are right, the dependance tree might be 
not the good way for implementation. I think i had in mind massively 
parallelism instead of simple parralelism.
I will try to implement in openmp a more simple solution.

Le 08/03/2014 18:00, [email protected] a écrit :
> I think you are making it harder than it needs to be and
> overlooking why/where it could be of benefit.
>
> That sample matrix is not in the form you actually get.
>
> The form you get is bordered-block-diagonal, possibly
> hierarchical.  By hierarchical I mean you will find a BBD form
> inside a block.
Ok i will change my example to do test.
> Blocks can be done in parallel with other blocks, then the
>
> In the netlist, blocks can be identified by subcircuit/module
> instantiations.  Borders can be identified by the next higher
> level and subcircuit/module calls.
>
> The netlist node list is an adjacency matrix.
>
> This stuff is available.  It will be faster and easier to use it
> rather than to try to extract that from the matrix.  By faster,
> I mean both faster to run and faster to develop.
>
> Any block smaller that about 100 nodes is not worth decomposing
> further.  Just assume it is connected.
I will try to check , if it necessary . Futhermore i think we don't more 
threads than the number of threads that can run simultaneously(num_procs 
* hyper_threading factor ) so most probably a decomposition into 16 
threads will be enough for the current processor architecture.
> If you have a block that is big enough to split, the way to
> split is to look for ways to move nodes to a border.  This is
> the opposite of what traditional ordering methods do.
>
> The block requirement for parallel is the same as for
> incremental update.
>
> Global ordering takes at best O(n log(n)) time.  This is too
> slow.  The way to make it faster is local ordering and reuse.
>
> Gnucap's ordering is non-optimal, but needs to stay early in the
> process.  It should be done before expansion.  That is one
> reason I never did anything with the post-expand ordering hook.
>
And sorry for the late answer , i have administrative stuff to do at 
work that i always pospone. I come to you to let you know how i progress.

Thanks fo your reply.

-- 
Beranger Six,
CCamy système
06 33 16 10 17
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.