Dear all, as announced, I spent two days at OGF 34 in Oxford. Here is the short summary from DRMAA perspective: 1.) C Binding Andre Merzky and me spend some minutes on fixing the final issues in the C binding header file. As before, the latest version is here: http://bit.ly/zwgDFP We did another round of re-naming to get the method names even shorter. The list iterator is now more array-alike. Since I get frequent requests for the final header file, I will start the document preparation during the next days. If you want to influence the C layout of DRMAAv2, this is your last chance. 2.) Reference implementation I found a student to implement a fork-based prototype of DRMAAv2 for C. Feel free to join us: https://github.com/troeger/drmaav2-mock 3.) OCCI-DRMAA This idea was the primary reason for visiting OGF 34. Thijs Metsch, Alexander Papaspyrou and Andy Edmonds (all OCCI) helped me with the creation of a surprisingly complete draft of the spec. Everybody loved the idea of getting 'remote HTTP-based DRMAA' and 'OCCI PaaS for job submission' at the same time. The concepts seem to work. Thijs will now work on the nasty remaining issues. Here is the latest document draft: http://bit.ly/yXzRy2 If you want the short version of the idea, check Section 14. 4.) Visibility I got an invitation from the "Grid Interoperability Now" group to talk about DRMAA. Andre took care of this, since I had to catch a flight (big thanks again). Alan Sill hinted that with existing DRMAAv2 support in Condor, he might have a couple of interested end users. I also talked to some EU projects about their demand for DRMAA support. Most of the time, it is about J-SAGA support for this or that DRM system. I got an invitation from Morris Riedel to talk about DRMAAv2 in Jülich. The audience will be mostly Unicore people, and maybe some folks from Intel. 5.) OGF 35 OGF 35 in the Netherlands will be crucial for us. Please mark your calendars and try to be there. Depending on the number of participants, we may want to organize coding sprints beside the ordinary working group business. Best regards, Peter. P.S.: Phone calls are still on hold until somebody raises major issues with one of the specs.
Referring to the drmaa2 C binding header at http://bit.ly/zwgDFP I see: typedef void * drmaa2_jsession_h; typedef void * drmaa2_rsession_h; typedef void * drmaa2_msession_h; typedef void * drmaa2_j_h; typedef void * drmaa2_jarray_h; typedef void * drmaa2_r_h; whereas, I expected something more like: struct drmaa2_jsession_s; /*forward*/ struct drmaa2_rsession_s; /*forward*/ struct drmaa2_msession_s; /*forward*/ struct drmaa2_j_s; /*forward*/ struct drmaa2_jarray_s; /*forward*/ struct drmaa2_r_s; /*forward*/ typedef struct drmaa2_jsession_s * drmaa2_jsession_h; typedef struct drmaa2_rsession_s * drmaa2_rsession_h; typedef struct drmaa2_msession_s * drmaa2_msession_h; typedef struct drmaa2_j_s * drmaa2_j_h; typedef struct drmaa2_jarray_s * drmaa2_jarray_h; typedef struct drmaa2_r_s * drmaa2_r_h; A problem with using, typedef void * drmaa2_jsession_h; in a C binding is that any pointer type can be passed to a function declared like: extern void myFavoriteFunction( drmaa2_jsession_h firstArg ); since it effectively accepts a 'void *'. For example: /*start-of-file mymain.c*/ #ifdef CURRENT typedef void * drmaa2_jsession_h; #else struct drmaa2_jsession_s; /*forward*/ typedef struct drmaa2_jsession_s * drmaa2_jsession_h; #endif extern void myFavoriteFunction( drmaa2_jsession_h firstArg ); int main( int argc, char* argv[] ) { myFavoriteFunction( &argc ); return 0; } /*end-of-file mymain.c*/ $ gcc -c -DCURRENT mymain.c $ gcc -c -DCURRENT -Wall -pedantic mymain.c $ gcc -c -UCURRENT mymain.c mymain.c: In function ?main?: mymain.c:13: warning: passing argument 1 of ?myFavoriteFunction? from incompatible pointer type $ gcc --version gcc (GCC) 4.1.2 -------- Original Message -------- Subject: [DRMAA-WG] OGF34 summary From: Peter Tröger <peter@troeger.eu> To: drmaa-wg@ogf.org <drmaa-wg@ogf.org> Cc: Thijs Metsch <thijs.metsch@de.ibm.com>, "alexander.papaspyrou@tu-dortmund.de" <alexander.papaspyrou@tu-dortmund.de>, AndrewX Edmonds <andrewx.edmonds@intel.com> Date: 03/16/2012 12:54 AM Dear all, as announced, I spent two days at OGF 34 in Oxford. Here is the short summary from DRMAA perspective: 1.) C Binding Andre Merzky and me spend some minutes on fixing the final issues in the C binding header file. As before, the latest version is here: http://bit.ly/zwgDFP We did another round of re-naming to get the method names even shorter. The list iterator is now more array-alike. Since I get frequent requests for the final header file, I will start the document preparation during the next days. If you want to influence the C layout of DRMAAv2, this is your last chance. [ ... DELETED TEXT ... ]
+1 On Fri, Mar 30, 2012 at 1:53 AM, Roger Brobst <rogerb@cadence.com> wrote:
Referring to the drmaa2 C binding header at http://bit.ly/zwgDFP I see:
typedef void * drmaa2_jsession_h; typedef void * drmaa2_rsession_h; typedef void * drmaa2_msession_h; typedef void * drmaa2_j_h; typedef void * drmaa2_jarray_h; typedef void * drmaa2_r_h;
whereas, I expected something more like:
struct drmaa2_jsession_s; /*forward*/ struct drmaa2_rsession_s; /*forward*/ struct drmaa2_msession_s; /*forward*/ struct drmaa2_j_s; /*forward*/ struct drmaa2_jarray_s; /*forward*/ struct drmaa2_r_s; /*forward*/
typedef struct drmaa2_jsession_s * drmaa2_jsession_h; typedef struct drmaa2_rsession_s * drmaa2_rsession_h; typedef struct drmaa2_msession_s * drmaa2_msession_h; typedef struct drmaa2_j_s * drmaa2_j_h; typedef struct drmaa2_jarray_s * drmaa2_jarray_h; typedef struct drmaa2_r_s * drmaa2_r_h;
A problem with using, typedef void * drmaa2_jsession_h; in a C binding is that any pointer type can be passed to a function declared like: extern void myFavoriteFunction( drmaa2_jsession_h firstArg ); since it effectively accepts a 'void *'.
For example:
/*start-of-file mymain.c*/ #ifdef CURRENT typedef void * drmaa2_jsession_h; #else struct drmaa2_jsession_s; /*forward*/ typedef struct drmaa2_jsession_s * drmaa2_jsession_h; #endif
extern void myFavoriteFunction( drmaa2_jsession_h firstArg );
int main( int argc, char* argv[] ) { myFavoriteFunction( &argc ); return 0; } /*end-of-file mymain.c*/
$ gcc -c -DCURRENT mymain.c $ gcc -c -DCURRENT -Wall -pedantic mymain.c $ gcc -c -UCURRENT mymain.c mymain.c: In function ?main?: mymain.c:13: warning: passing argument 1 of ?myFavoriteFunction? from incompatible pointer type $ gcc --version gcc (GCC) 4.1.2
-------- Original Message -------- Subject: [DRMAA-WG] OGF34 summary From: Peter Tröger <peter@troeger.eu> To: drmaa-wg@ogf.org <drmaa-wg@ogf.org> Cc: Thijs Metsch <thijs.metsch@de.ibm.com>, "alexander.papaspyrou@tu-dortmund.de" <alexander.papaspyrou@tu-dortmund.de>, AndrewX Edmonds <andrewx.edmonds@intel.com> Date: 03/16/2012 12:54 AM
Dear all,
as announced, I spent two days at OGF 34 in Oxford. Here is the short summary from DRMAA perspective:
1.) C Binding
Andre Merzky and me spend some minutes on fixing the final issues in the C binding header file. As before, the latest version is here:
We did another round of re-naming to get the method names even shorter. The list iterator is now more array-alike.
Since I get frequent requests for the final header file, I will start the document preparation during the next days. If you want to influence the C layout of DRMAAv2, this is your last chance.
[ ... DELETED TEXT ... ]
-- drmaa-wg mailing list drmaa-wg@ogf.org https://www.ogf.org/mailman/listinfo/drmaa-wg
-- Nothing is ever easy...
Dear Roger, thanks for this helpful correction. Since the implementation needs to realize the true structures anyway, it makes even more sense to have forward definitions. I applied the same pattern also to drmaa2_list and drmaa2_dict. The header file was updated accordingly: http://bit.ly/zwgDFP I am still working on the document text. Best regards, Peter. Am 30.03.12 01:53, schrieb Roger Brobst:
Referring to the drmaa2 C binding header at http://bit.ly/zwgDFP I see:
typedef void * drmaa2_jsession_h; typedef void * drmaa2_rsession_h; typedef void * drmaa2_msession_h; typedef void * drmaa2_j_h; typedef void * drmaa2_jarray_h; typedef void * drmaa2_r_h;
whereas, I expected something more like:
struct drmaa2_jsession_s; /*forward*/ struct drmaa2_rsession_s; /*forward*/ struct drmaa2_msession_s; /*forward*/ struct drmaa2_j_s; /*forward*/ struct drmaa2_jarray_s; /*forward*/ struct drmaa2_r_s; /*forward*/
typedef struct drmaa2_jsession_s * drmaa2_jsession_h; typedef struct drmaa2_rsession_s * drmaa2_rsession_h; typedef struct drmaa2_msession_s * drmaa2_msession_h; typedef struct drmaa2_j_s * drmaa2_j_h; typedef struct drmaa2_jarray_s * drmaa2_jarray_h; typedef struct drmaa2_r_s * drmaa2_r_h;
A problem with using, typedef void * drmaa2_jsession_h; in a C binding is that any pointer type can be passed to a function declared like: extern void myFavoriteFunction( drmaa2_jsession_h firstArg ); since it effectively accepts a 'void *'.
For example:
/*start-of-file mymain.c*/ #ifdef CURRENT typedef void * drmaa2_jsession_h; #else struct drmaa2_jsession_s; /*forward*/ typedef struct drmaa2_jsession_s * drmaa2_jsession_h; #endif
extern void myFavoriteFunction( drmaa2_jsession_h firstArg );
int main( int argc, char* argv[] ) { myFavoriteFunction( &argc ); return 0; } /*end-of-file mymain.c*/
$ gcc -c -DCURRENT mymain.c $ gcc -c -DCURRENT -Wall -pedantic mymain.c $ gcc -c -UCURRENT mymain.c mymain.c: In function ?main?: mymain.c:13: warning: passing argument 1 of ?myFavoriteFunction? from incompatible pointer type $ gcc --version gcc (GCC) 4.1.2
-------- Original Message -------- Subject: [DRMAA-WG] OGF34 summary From: Peter Tröger <peter@troeger.eu> To: drmaa-wg@ogf.org <drmaa-wg@ogf.org> Cc: Thijs Metsch <thijs.metsch@de.ibm.com>, "alexander.papaspyrou@tu-dortmund.de" <alexander.papaspyrou@tu-dortmund.de>, AndrewX Edmonds <andrewx.edmonds@intel.com> Date: 03/16/2012 12:54 AM
Dear all,
as announced, I spent two days at OGF 34 in Oxford. Here is the short summary from DRMAA perspective:
1.) C Binding
Andre Merzky and me spend some minutes on fixing the final issues in the C binding header file. As before, the latest version is here:
We did another round of re-naming to get the method names even shorter. The list iterator is now more array-alike.
Since I get frequent requests for the final header file, I will start the document preparation during the next days. If you want to influence the C layout of DRMAAv2, this is your last chance.
[ ... DELETED TEXT ... ]
participants (3)
-
Andre Merzky -
Peter Tröger -
Roger Brobst