
Zitat von
Hans21
Noch was: Ich wollte mal schauen, ob und wie man mit dem veröffentlichten Code das Multiprocessing ermöglichen könnte.
Ein relevantes Code-Stück ist z.B. in "options.f":
"...
c
c------------------------------< mp : enable multiprocessing
c
1700 continue
if(busy .ne. 0) go to 9998
oldncpus=ncpus
if(atext(3) .ne. blank) then
col=4
ncpus=scan(col)
write(3,1720) ncpus
if(ncpus .gt. 1) cputim=0
snodes=snodes/oldncpus*ncpus
endif
print 1720, ncpus
1720 format(1x,'multiprocessing using',i3,' processors.')
c call tsktune('MAXCPU',aio+ncpus,'DBRELEAS',aio+ncpus,
c * 'DBACTIVE',0,'HOLDTIME',1000,'SAMPLE',1000)
if(ncpus .gt. oldncpus) then
print 1725,ncpus-oldncpus
1725 format(1x,'creating ',i2,' new tasks.')
do 1730 i=1,ncpus-oldncpus
tskarray((i-1)*3+1)=3
tskarray((i-1)*3+2)=0
tskarray((i-1)*3+3)=i
c call tskstart(tskarray((i-1)*3+1),control,0)
1730 continue
else if(ncpus .lt. oldncpus) then
print 1735, oldncpus-ncpus
1735 format(1x,'terminating ',i2,' old tasks.')
do 1740, i=oldncpus,ncpus+1,-1
stop(i)=-9999
1740 continue
endif
go to 9999
c
..."
Dort sieht man, dass u.a. die Zeilen mit "call tskstart(..." auskommentiert sind (ein "c" am Zeilenanfang). Im Weiteren gibt auch keinen Implementationscode für "tskstart".
Es scheint, dass die Multiprocessing-Möglichkeit vor der Veröffentlichung des Codes gezielt entfernt wurde.
Falls das jemand anders sieht, bin ich um eine Rückmeldung dankbar.
Hans