On 18/06/2020 12:24 am, Kirk Wolf wrote:
Lionel,
I wasn't thinking of using the "all members" form of cp - that seems like
it should be *much* better, although it would depend on how cp works under
the covers - evidence indicates that it just loops and does
alloc/open/close/free on each member. If only the cp authors had better
C library support for PDSs ;-)
I'm curious - how much time did you save by preallocating the PDS?
Kirk Wolf
http://dovetail.com
Preallocating the PDS gave me about a 12x speed improvement. Here is a
Rexx shell script rxalloc to do the allocation (I couldn't figure out a
way to do bpxwdyn from the shell):
/* rexx */
parse arg dataset
call bpxwdyn "alloc da("|| dataset || ") old msg(2) rtddn(ddname)"
say ddname
and a shell script to test:
#!/bin/sh
export _BPX_SHAREAS=YES
./rxalloc SYS1.MACLIB
/bin/cp -T -U -S a=.txt "//'SYS1.MACLIB'" /home/andrewr/temp
The individual member copies with progress indicator in Zigi also seems
to have significant overhead. Approximate copy speeds on my system were:
Zigi: 1 member/second
cp, without preallocation: 8 members/second
cp, with preallocation: 100 members/second
SMF also suggests cp for some reason opens and closes the PDS twice for
each member. I wrote a small Java program to perform the copy using the
JZOS classes, this coped about 200 members/second.
--
Andrew Rowley
Black Hill Software
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN