#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(...);