NWCHEM 6.1.1 on MIC node


Just Got Here
Hi,

I am wondering if you can provide me a patch for Nwchem 6.1.1 (GA) on Intel MIC node. I was able to find the patch and was able to compile Nwchem 6.3 (GA 5.2). But NOT Nwchem 6.1.1. Can you help me?

Thanks.

Forum Regular
Is there any particular reason why you want to use NWChem 6.1.1? That is a rather old version of the code by now. One thing you could try is to copy the tools directory from your NWChem 6.3 version into NWChem 6.1.1. That MIGHT work (there are no guarantees here as I haven't actually tried this). If this doesn't work, please let me know.
Huub

Just Got Here
Some users want to use 6.1.1 instead of 6.3 for some reason.

I followed your (Huub's) suggestion, copied the $NWCHEM_TOP/src/tools directory and $NWCHEM_TOP/src/util/util_ga_version.bash from 6.3. But it failed with following link errors:
....
....
$NWCHEM_TOP/src/tools/install/lib/libga.a(ma.o): In function `MA_init':
../ga-5-2/ma/ma.c:(.text+0x67c2): undefined reference to `ARMCI_Malloc_local'
$NWCHEM_TOP/src/tools/install/lib/libga.a(collect.o): In function `wnga_msg_brdcst':
../ga-5-2/global/src/collect.c:(.text+0x4b): undefined reference to `armci_msg_group_bcast_scope'
../ga-5-2/global/src/collect.c:(.text+0x5f): undefined reference to `armci_msg_bcast'
$NWCHEM_TOP/src/tools/install/lib/libga.a(collect.o): In function
....
....

Do you know if the similar patch (selection of IB interface) for GA-5-1 is available?

Just Got Here
I found we can use basically same path for GA-5-2 to the GA-5-1 but different line #:

--- $NWCHEM_TOP/src/tools/ga-5-1/armci/src/devices/openib/openib.c
+++ openib.c
@@ -799,31 +799,11 @@

     devs = ibv_get_device_list(&ndevs);

-    char *runtime_devname; 
-    int device_found = 0, device_id = 0; 
- 
-    runtime_devname = getenv("ARMCI_OPENIB_DEVICE"); 
- 
-    if (runtime_devname) { 
-        for (i = 0; i < ndevs; i++) { 
-            if (!strncmp(ibv_get_device_name(devs[i]), runtime_devname, 32)) { 
-                device_found = 1; 
-                device_id = i; 
-                break; 
-            } 
-        } 
-    } 
-    else { 
-        device_id = 0; 
-        device_found = 1; 
-    } 
- 
-    assert(device_found); 
-    nic->handle = ibv_open_device(devs[device_id]); 
+    nic->handle = ibv_open_device(*devs); 

     nic->maxtransfersize = MAX_RDMA_SIZE;

-    nic->vendor = ibv_get_device_name(devs[device_id]); 
+    nic->vendor = ibv_get_device_name(*devs);

     rc = ibv_query_device(nic->handle, &nic->attr);

After applied above patch, make nwchem_config && make. With the environmental variable ARMCI_OPENIB_DEVICE = mlx4_0, I was able to run NWChem 6.1.1 on the MIC node.


Forum >> NWChem's corner >> Compiling NWChem