Discussion:
[DRMAA-WG] OGF34 summary
Peter Tröger
2012-03-16 07:54:28 UTC
Permalink
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.




-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4343 bytes
Desc: not available
URL: <http://www.ogf.org/pipermail/drmaa-wg/attachments/20120316/df69f9fa/attachment.bin>
Roger Brobst
2012-03-29 23:53:49 UTC
Permalink
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 at troeger.eu>
To: drmaa-wg at ogf.org <drmaa-wg at ogf.org>
Cc: Thijs Metsch <thijs.metsch at de.ibm.com>,
"alexander.papaspyrou at tu-dortmund.de"
<alexander.papaspyrou at tu-dortmund.de>, AndrewX Edmonds
<andrewx.edmonds at 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 ... ]
Andre Merzky
2012-03-30 08:28:10 UTC
Permalink
+1
Post by Roger Brobst
Referring to the drmaa2 C binding header at http://bit.ly/zwgDFP
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;
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
? ?extern void myFavoriteFunction( drmaa2_jsession_h firstArg );
since it effectively accepts a 'void *'.
/*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: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 at troeger.eu>
To: drmaa-wg at ogf.org <drmaa-wg at ogf.org>
Cc: Thijs Metsch <thijs.metsch at de.ibm.com>,
"alexander.papaspyrou at tu-dortmund.de" <alexander.papaspyrou at tu-dortmund.de>,
AndrewX Edmonds <andrewx.edmonds at 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
1.) C Binding
Andre Merzky and me spend some minutes on fixing the final issues in the C
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 ... ]
--
?drmaa-wg mailing list
?drmaa-wg at ogf.org
?https://www.ogf.org/mailman/listinfo/drmaa-wg
--
Nothing is ever easy...
Peter Tröger
2012-03-30 09:21:15 UTC
Permalink
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.
Post by Roger Brobst
Referring to the drmaa2 C binding header at http://bit.ly/zwgDFP
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;
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
extern void myFavoriteFunction( drmaa2_jsession_h firstArg );
since it effectively accepts a 'void *'.
/*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: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 at troeger.eu>
To: drmaa-wg at ogf.org <drmaa-wg at ogf.org>
Cc: Thijs Metsch <thijs.metsch at de.ibm.com>,
"alexander.papaspyrou at tu-dortmund.de"
<alexander.papaspyrou at tu-dortmund.de>, AndrewX Edmonds
<andrewx.edmonds at 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
1.) C Binding
Andre Merzky and me spend some minutes on fixing the final issues in the
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 ... ]
Loading...