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

Last change on this file since 16515 was 16515, checked in by Mathieu Morlighem, 11 years ago

CHG: fixed marshalling for new IoModel checkconsistentcy

File size: 2.3 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
[16250]19%First, write MaximumNumberOfDefinitionsEnum to make sure that the Enums are synchronized
20WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum(),'data',true,'format','Boolean');
[12378]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');
[16515]28
29%Last, write MaximumNumberOfEnum+1 to make sure that the binary file is not corrupt
30WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum()+1,'data',true,'format','Boolean');
31
32%Now, write number of options
[12384]33options.marshall(fid,5);
[12378]34st=fclose(fid);
35if st==-1,
36 error(['marshall error message: could not close file ' name '.bin']);
37end
38% ========================================= MARSHALL.m =================================================
39
40%Launch job on remote cluster
41BuildKrigingQueueScript(cluster,name,'',1,0,0); %gather, valgrind, gprof
42LaunchQueueJob(cluster,name,name,{[name '.bin'] [name '.queue']});
[15229]43
44%Call waitonlock
[15572]45md=model; md.cluster=cluster; md.settings.waitonlock=Inf; md.private.runtimename=name;md.miscellaneous.name=name;
46waitonlock(md);
[15229]47
48%Download
[12378]49Download(cluster,name,{[name '.outbin']});
[12662]50structure=parseresultsfromdisk([name '.outbin'],0);
51delete([name '.outlog']);
52delete([name '.errlog']);
53delete([name '.outbin']);
54delete([name '.bin']);
[13170]55if ~ispc(),
[12662]56 delete([name '.tar.gz']);
57end
[12378]58
59%Process results
[15229]60B=structure.(EnumToString(0));
[12662]61B=reshape(B,size(x_interp,2),size(x_interp,1))';
[15229]62E=structure.(EnumToString(1));
[12662]63E=reshape(E,size(x_interp,2),size(x_interp,1))';
Note: See TracBrowser for help on using the repository browser.