Now, i just start researching BlueBDM. so I refer to and quote site1(applications), site2(ISCA15_Sang-Woo_Jun), site3(studylib).

BlueDBM : An Appliance for Big Data Analytics

  • BlueDBM is a system architecture to accelerate Big Data analytics.

in site1(applications), just BlueDBM show remote environment and hardware structure.

the image below is hardeware of blueDBM

in 5.3 Software interface of hardware at above paper

you have a doubt of Connectal.

from now on, I am looking for Connectal framwork

[hyunyoung.lee@localhost bdbm_drv]$ grep -rni connectal *
devices/bluedbm/Makefile:8:CPPDIR = connectal/cpp
devices/bluedbm/Makefile:15:	$(PWD)/connectal/drivers/pcieportal/Module.symvers \
devices/bluedbm/Makefile:16:	$(PWD)/connectal/drivers/portalmem/Module.symvers
devices/bluedbm/Makefile:23:	-I$(PWD)/connectal \
devices/bluedbm/Makefile:24:	-I$(PWD)/connectal/cpp \
devices/bluedbm/Makefile:25:	-I$(PWD)/connectal/drivers/pcieportal \
devices/bluedbm/Makefile:26:	-I$(PWD)/connectal/drivers/portalmem \
devices/bluedbm/dm_bluedbm.c:72:	bdbm_completion_t connectal_completion;
devices/bluedbm/dm_bluedbm.c:73:	bdbm_completion_t connectal_completion_init;
devices/bluedbm/dm_bluedbm.c:75:	/* for Connectal */
devices/bluedbm/dm_bluedbm.c:88:	struct task_struct *connectal_handler;
devices/bluedbm/dm_bluedbm.c:104: * the implementation of call-back functions for Connectal 
devices/bluedbm/dm_bluedbm.c:247:int connectal_handler_fn (void* arg) 
devices/bluedbm/dm_bluedbm.c:295:	/* get the mapped-memory from Connectal */
devices/bluedbm/dm_bluedbm.c:324:	bdbm_daemonize ("connectal_handler_fn");
devices/bluedbm/dm_bluedbm.c:326:	bdbm_complete (priv->connectal_completion_init);
devices/bluedbm/dm_bluedbm.c:339:	bdbm_complete (priv->connectal_completion);
devices/bluedbm/dm_bluedbm.c:390:	bdbm_init_completion (priv->connectal_completion);
devices/bluedbm/dm_bluedbm.c:391:	bdbm_init_completion (priv->connectal_completion_init);
devices/bluedbm/dm_bluedbm.c:403:	if ((priv->connectal_handler = kthread_create (
devices/bluedbm/dm_bluedbm.c:404:			connectal_handler_fn, (void*)bdi, "connectal_handler_fn")) == NULL) {
devices/bluedbm/dm_bluedbm.c:417:/* NOTE: To prevent the mapped-memory from Connectal from being freed,
devices/bluedbm/dm_bluedbm.c:418: * we have to run connectal_handler in a different thread */
devices/bluedbm/dm_bluedbm.c:423:	/* start the connectal handler */
devices/bluedbm/dm_bluedbm.c:424:	wake_up_process (priv->connectal_handler);
devices/bluedbm/dm_bluedbm.c:426:	/* wait until the connectal handler finishes it jobs */
devices/bluedbm/dm_bluedbm.c:427:	wait_for_completion (&priv->connectal_completion_init);
devices/bluedbm/dm_bluedbm.c:457:	if (priv->connectal_handler) {
devices/bluedbm/dm_bluedbm.c:458:		send_sig (SIGKILL, priv->connectal_handler, 0);
devices/bluedbm/dm_bluedbm.c:460:			&priv->connectal_completion, 
devices/common/dev_main.c:41:bdbm_drv_info_t* _bdi_dm = NULL; /* for Connectal & RAMSSD */  -> maybe this part is important.