#include <dlfcn.h> // required for dlopen and dlsym
cudssDistributedInterface_t *commIface;
void *commIfaceLib = NULL;
char *libname = <path to the communication layer library>;
commIfaceLib = static_cast<void*>(dlopen(libname, RTLD_NOW));
if (commIfaceLib == NULL) { /* bad */ }
commIface = (cudssDistributedInterface_t*)dlsym(commIfaceLib,
"cudssDistributedInterface");
if (commIface == NULL) { /* bad */ }
commIface->cudssBcast(...);