[Fwd: Re: [Swift-devel] Re: swift-falkon problem... plots to explain plateaus...]

Michael Wilde wilde at mcs.anl.gov
Tue Mar 25 10:06:46 CDT 2008


One thing I'll test is generating the info file on /tmp, and moving it 
when done to the final job dir.

I can see adjusting wrapper.sh to go from very light to very logged with 
a few increments in the middle that would be most useful.

The main option I think we want to leave for users to toggle in common 
usage, is whether to run the app with its jobdir on local disk, 
typically below /tmp, or on shared disk.  The user would decide based on 
the job's I/O profile and on local disk space availability.

Also, I recall some discussion on the success file. Thats acceptable 
overhead for all but the tiniest of jobs, but when a BGP is eventually 
running 100K+ short jobs at once, the rate of success file creation 
could become a bottleneck. Seems like we could have an option that 
avoids creating and expecting the success file if that proved useful - 
need to measure.

- Mike


On 3/25/08 9:32 AM, Mihael Hategan wrote:
> Problem may be that, as a quick test shows, bash opens and closes the
> info file every time a redirect is done.
> 
> On Tue, 2008-03-25 at 08:44 -0500, Michael Wilde wrote:
>> I did runs the day before with a modified wrapper that bypassed the INFO 
>> logging. It saved a good amount - I recall about 30% but need to 
>> re-check the numbers.
>>
>> Yes, I came to the same conclusion on the mkdirs.  Im looking at 
>> reducing these, likely moving the jobdir to /tmp.  I think I can do that 
>> within the current structure.  wrapper.sh is ver clear and nicely 
>> written. (Ben: yes, eyeballing the log #s was easy and no problem).
>>
>> First thing I want to do, though, is run some large scale tests on our 
>> two science workflows, increasing the petro-modelling one (the 
>> sub-second application) to a larger runtime through app-level batching.
>>
>> Zhao's latest test indicate that if we do batches of 40, bringing the 
>> jobs from .5 sec to 20 sec, we can saturate the BGP's 4K cores and keep 
>> it running efficiently. Given the extra wrapper.sh overhead, I might 
>> need to increase that another 10X, but once the app is wrapped in a 
>> loop, it makes little difference to the user how big we make that.
>>
>> The other app is a molecule-docking app, that can be batched similarly.
>>
>> Once we get those running nicely at a larger, less brutal job time, I'll 
>> come back to wrapper.sh tuning.  If you or Ben want to do this in the 
>> meantime, though, that would be great.  We have the use-local-disk 
>> scenario on our development stack anyways - this would be a good time to 
>> do it.  If I do it, it will be only a prototype for measurement purposes.
>>
>> Mike
>>
>>
>>
>>
>> On 3/25/08 8:34 AM, Mihael Hategan wrote:
>>> On Tue, 2008-03-25 at 08:16 -0500, Michael Wilde wrote:
>>>> On 3/25/08 3:31 AM, Mihael Hategan wrote:
>>>>> On Tue, 2008-03-25 at 00:28 -0500, Michael Wilde wrote:
>>>>>> I eyeballed the wrapperlogs to get a rough idea of what was happening.
>>>>>>
>>>>>> I ran with wrapperlog saving and no other changes for wf's of 10, 100 
>>>>>> and 500 jobs, to see how the exec time grew.  At 500 jobs it grew to 
>>>>>> about 30+ seconds for a core app exec time of about 1 sec. (Im just 
>>>>>> recollecting the times as at this point I didnt write much down).
>>>>>>
>>>>> I would personally like to see those logs.
>>>> I listed all the runs in the previous mail (below), Mihael. They are on 
>>>> CI NFS at ~benc/swift-logs/wilde/run{345-350}.
>>> Sorry about that.
>>>
>>>>  Let us know what you find.
>>>>
>>> It looks like this:
>>> - 5 seconds between LOG_START and CREATE_JOBDIR. Likely hogs:
>>> mkdir -p $WFDIR/info/$JOBDIR
>>> mkdir -p $WFDIR/status/$JOBDIR
>>> and the creation of the info file.
>>> - 2.5 seconds between CREATE_JOBDIR and CREATE_INPUTDIR. Likely problem:
>>> mkdir -p $DIR
>>> (on a very fuzzy note, if one mkdir takes 2.5 seconds, two will take 5,
>>> which seems to roughly fit the observed numbers).
>>> - 3.5 seconds for COPYING_OUTPUTS
>>> - 2.5 seconds for RM_JOBDIR
>>>
>>> I'd be curious to know how much of the time is actually spent writing to
>>> the logs. That's because I see one second between EXECUTE_DONE and
>>> COPYING_OUTPUTS, a place where the only meaningful things that are done
>>> are two log messages.
>>>
>>> Perhaps it may be useful to run the whole thing through strace -T.
>>>
>>> Mihael
>>>
>>>
> 
> 



More information about the Swift-devel mailing list