This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi - hunt wrote: > > different per-cpu maps will in general have different set of index > > tuples? > > The per-cpu maps are first aggregated into one map. > > Creating a pmap will actually create N+1 maps where N = number of cpus. > The extra map will be the aggregation map. When _stp_pmap_start(), > stp_pmap_print(), or _stp_pmap_sort() are called, the per-cpu maps are > summed into the aggregation map. [...] OK. Maybe it will be useful to avoid such copying, and do it virtually, something like this: - for pmap->lookup(key) iterate over map[cpu]->lookup(key) and aggregate on the fly - for iteration, iterate over map[0], aggregating same keys over map[1..N], then follow that with an iteration over map[1] that skips those key tuples already handled for map[0], and so on. The complexity of this may not be smaller than plain merge-then-iterate, but would eliminate data copying. - for sorted iteration, sort each map[cpu], then do per-step "external merge" - FChE
Attachment:
pgp00000.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |