Print

Print



1. BUILD_FFTW:  

In case Fortran compilation fails consider adding  --disable-fortran to the ./configure line in INSTALL.sh. 

2. BUILD_RELION: 

Add  MPICXX=CC to ./configure  

3. If your log file fails to  show host names it is because system("echo `hostname`") does not work on CRAY Linux.
    It is better to use the posix system call "gethostbyname" instead:

i.e rewrite void printMpiNodesMachineNames in mpi.cpp like this:

void printMpiNodesMachineNames(MpiNode &node, int nthreads)
{
        char nodename[64] = "undefined";
        gethostname(nodename,sizeof(nodename));

        if (node.isMaster())
        {
                std::cout << " === RELION MPI setup ===" << std::endl;
                std::cout << " + Number of MPI processes             = " << node.size << std::endl;
                if (nthreads > 1)
                {
                        std::cout << " + Number of threads per MPI process  = " << nthreads << std::endl;
                        std::cout << " + Total number of threads therefore  = " << nthreads * node.size << std::endl;
                }
                std::cout << " + Master  (0) runs on host            = " << nodename << std::endl;
                std::cout.flush();
        }
        node.barrierWait();

        for (int slave = 1; slave < node.size; slave++)
        {
                if (slave == node.rank)
                {
                        std::cout << " + Slave ";
                        std::cout.width(5);
                        std::cout << slave;
                        std::cout << " runs on host            = " << nodename << std::endl;
                        std::cout.flush();
                }
                node.barrierWait();
        }
        if (node.isMaster())
        {
                std::cout << " =================" << std::endl;
        }
        std::cout.flush();
        // Try to flush all std::cout of all MPI processes before proceeding...
        sleep(1);
        node.barrierWait();
}




--
Tom Houweling  -  QB3 Nogales Lab  Computer Analyst @ Howard Hughes Medical Institute
University of California Berkeley, 708D Stanley Hall, Berkeley, CA 94720