[Swift-user] Problems in complex mapping situation
Michael Wilde
wilde at mcs.anl.gov
Fri Mar 20 11:05:19 CDT 2009
Cool. I forgot about this. I can certainly try it for perf measurements.
A mapper-like external script can walk the output tree of the concurrent
mapper and create links with the desired filenames. I'll try that.
Some questions (but I'll find this out in a moment when I try it):
- does this behavior start as soon as the directory hits 50 elements?
- if the first element I store is, say 1000, is it triggered?
- does it map arrays of structures?
Im assuming yes to all these, and will experiment. Thanks!
On 3/20/09 4:15 AM, Ben Clifford wrote:
> On Fri, 20 Mar 2009, Michael Wilde wrote:
>
>> This script was working fine, and I was trying to improve its performance on
>> large datasets on the BG/P by using an ext mapper instead of simple_mapper to
>> map a large 2D array of structures (OOPSOut result) so that it spreads across
>> multiple directories (to avoid the GPFS locking issue. (I have 4K cores
>> writing 14,000 files to one directory, as I see no way with simple mapper to
>> use the array index to, for example, insert more directory entries in the
>> prefix or suffix.)
>
> The concurrent mapper (used to map variables that have no explicitly
> declared mapper) makes a tree of directories for large arrays.
>
> This is done in a deliberately unspecified manner, but at present
> (according to the source) /** determines how many directories and element
> files are permitted
> in each directory. There will be no more than
> DIRECTORY_LOAD_FACTOR element files and no more than
> DIRECTORY_LOAD_FACTOR directories, so there could be up to
> 2 * DIRECTORY_LOAD_FACTOR elements. */
> public final static int DIRECTORY_LOAD_FACTOR=25;
>
> so if you declare an array as myarray foo[]; with no mapper, you'll end
> up with a tree of directories, each directory having no more than 50
> entries in it.
>
> You lose the ability to specify the filenames at all here, which may or
> may not be a problem for your applications.
>
> It might be that this functionality could be more made more general so
> that you can (for example) specify some option to the simple mapper to get
> automatically-computed hierarchical directories. It seems like a common
> enough use case.
>
More information about the Swift-user
mailing list