Programming odds and ends — InfiniBand, RDMA, and low-latency networking for now.

On DAPL

One of InfiniBand’s upper-layer protocols is DAPL (for Direct Access Programming Library), available both in user mode (as uDAPL) and in kernel mode (as kDAPL). DAPL is the result of an attempt early on to provide a common API for both InfiniBand and iWARP (Ethernet) devices. For whatever reason, DAPL never really seems to have caught on. Intel MPI uses (used?) it, as does OpenMPI (though OpenMPI also uses verbs natively through the openib BTL).

Having written and (successfully, albeit certainly not easily) deployed an application written against the uDAPL API, I feel confident in saying that it is to be avoided at all costs. It may appear, initially, to be easier to use than verbs, but it isn’t. The documentation isn’t always internally consistent, and I’ve had to work around several painfully-debugged issues with the uDAPL library. Given that verbs works with both InfiniBand and iWARP adapters, I can’t see a compelling reason to use DAPL.

To paraphrase someone much better-informed on the matter than I, “who the **** still uses DAPL?”

Enough said.

Advertisements

2 responses

  1. Xavier Guerin

    I am currently facing the choice of opting for either ibverbs or uDAPL. Do you have any link to document/papers/person that could comfort your assertion ?

    January 20, 2011 at 9:54 am

    • Not really, all I can do is appeal to reason: DAPL is a layer over verbs that offers no added value, is poorly documented, and is harder to use than the API it aims to wrap. Compare the DAPL documentation (or what little of it you can find) to the verbs documentation and judge for yourself. If it helps at all, I believe OpenMPI now uses verbs (through the openib BTL) in preference to the older uDAPL BTL.

      January 20, 2011 at 9:36 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s