source: issm/trunk-jpl/src/m/contrib/gslib/pkriging.m@ 15229

Last change on this file since 15229 was 15229, checked in by Mathieu Morlighem, 12 years ago

CHG: improved parallel kriging

File size: 2.0 KB
RevLine 
[13730]1function [B E]=pkriging(x,y,observations,x_interp,y_interp,varargin)
[12378]2%PKRIGING - parallel Kriging
3%
4% Usage:
5% [B E]=pkriging(x,y,observations,x_interp,y_interp,varargin);
6
7options=pairoptions(varargin{:});
[15229]8cluster=getfieldvalue(options,'cluster',generic('np',1));
[12384]9options=removefield(options,'cluster',0);
[12662]10name = ['krig' num2str(feature('GetPid'))];
[12378]11
12% ========================================= MARSHALL.m =================================================
13disp(['marshalling file ' name '.bin']);
14fid=fopen([name '.bin'],'wb');
15if fid==-1,
16 error(['marshall error message: could not open ' name '.bin file for binary writing']);
17end
18
19%First, write MaximumNumberOfEnum to make sure that the Enums are synchronized
20WriteData(fid,'enum',MaximumNumberOfEnums(),'data',true,'format','Boolean');
21
22%Write all data
23WriteData(fid,'enum',0,'data',x,'format','DoubleMat');
24WriteData(fid,'enum',1,'data',y,'format','DoubleMat');
25WriteData(fid,'enum',2,'data',observations,'format','DoubleMat');
26WriteData(fid,'enum',3,'data',x_interp,'format','DoubleMat');
27WriteData(fid,'enum',4,'data',y_interp,'format','DoubleMat');
[12384]28options.marshall(fid,5);
[12378]29st=fclose(fid);
30if st==-1,
31 error(['marshall error message: could not close file ' name '.bin']);
32end
33% ========================================= MARSHALL.m =================================================
34
35%Launch job on remote cluster
36BuildKrigingQueueScript(cluster,name,'',1,0,0); %gather, valgrind, gprof
37LaunchQueueJob(cluster,name,name,{[name '.bin'] [name '.queue']});
[15229]38
39%Call waitonlock
40md=model; md.cluster=cluster; md.settings.waitonlock=Inf;
41waitonlock(md)
42
43%Download
[12378]44Download(cluster,name,{[name '.outbin']});
[12662]45structure=parseresultsfromdisk([name '.outbin'],0);
46delete([name '.outlog']);
47delete([name '.errlog']);
48delete([name '.outbin']);
49delete([name '.bin']);
[13170]50if ~ispc(),
[12662]51 delete([name '.tar.gz']);
52end
[12378]53
54%Process results
[15229]55B=structure.(EnumToString(0));
[12662]56B=reshape(B,size(x_interp,2),size(x_interp,1))';
[15229]57E=structure.(EnumToString(1));
[12662]58E=reshape(E,size(x_interp,2),size(x_interp,1))';
Note: See TracBrowser for help on using the repository browser.