public void reLinksFiles() {
        if (this.mpiAppDir.equals(envs.get("PWD"))) {
            LOG.info("PWD and mpi app dir are the same, so skip create symlinks");
            return;
        }
        if (envs.containsKey(HboxConstants.Environment.MPI_FILES_LINKS.toString())) {
            String linkFileStr = envs.get(HboxConstants.Environment.MPI_FILES_LINKS.toString()) + ","
                    + HboxConstants.HBOX_JOB_CONFIGURATION;
            if (conf.getBoolean(
                    HboxConfiguration.HBOX_TF_BOARD_ENABLE, HboxConfiguration.DEFAULT_HBOX_TF_BOARD_ENABLE)) {
                String boardLogDir = this.conf.get(
                        HboxConfiguration.HBOX_TF_BOARD_LOG_DIR, HboxConfiguration.DEFAULT_HBOX_TF_BOARD_LOG_DIR);
                String name = new Path(boardLogDir).getName();
                if (name != null && !name.equals("")) {
                    boardLogDir = name;
                }
                linkFileStr = linkFileStr + "," + boardLogDir;
            }
            String[] linkFiles = StringUtils.split(linkFileStr, ",");
            try {
                for (String file : linkFiles) {
                    java.nio.file.Path targetPath = Paths.get(envs.get("PWD"), file);
                    java.nio.file.Path linkPath = Paths.get(this.mpiAppDir, file);
                    File linkfile = new File(linkPath.toString());
                    if (linkfile.exists()) {
                        linkfile.delete();
                    }
                    Files.createSymbolicLink(linkPath, targetPath);
                    LOG.info("create Symlink " + linkPath + " -> " + targetPath);
                }
            } catch (IOException e) {
                LOG.error("Create symlinks failed!", e);
            }
        }
    }
build reLinksFiles for cacheFiles and cacheArchives for mpi app
core/src/main/java/net/qihoo/hbox/container/HboxContainer.java