R和R包的安装

R的最新版需要专门去CRAN镜像下载安装文件。Ubuntu库里面的R通常不是最新版。如果要重新安装,则最好清空之前安装的软件包。例如删除掉“/usr/local/lib/R/site-library”之类的。然后重新安装R。

完成之后,后来安装的很多包,例如”devtools”, “EpiEstim”可能依赖Ubuntu的编译功能和Ubuntu系统的软件包。因此,最好在Ubuntu安装一下编译包,例如运行一下“sudo apt install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev”之类的。再继续安装一下lapack之类的软件包。根据R里面安装的提示,还需要去下载相应的包。这个R包管理上和Ubuntu系统包没有整合在一起,比较麻烦。只好不断地发现错误,不断地补充包。

其中有一个软件包源程序(stringi/icudt61l.zip)很难获得,需要单独去下载回来(http://www.ibspan.waw.pl/~gagolews/stringi/icudt61l.zip),然后本地安装。或者到网络好的地方多安装几遍。

本地安装方法,例如:install.packages(“~/dplyr-master.zip”, repos=NULL, type=”source”),或者 install.packages(“~/EpiEstim3_src/EpiEstim”, repos=NULL, type=”source”)

SageMath and Python on Jupyter

SageMath 是一个开源免费的数学软件,综合了大量的开源数学软件,用Python当做软件基本语言。因此,可以在使用Python的过程中,把SageMath当做一个额外功能模块来用。当然,如果是编程来使用,则这样用就够了。不过,SageMath和Python合起来还可以当做“计算器”来使用。这个时候,就最好有一个图形界面,并且能够把结果也在必要的时候做图形呈现,最好还能够分享。

Jupyter就是这样一个界面环境。

有两个方法可以通过Jupyter来集成使用SageMath和Python。

  1. 第一,安装完成SageMath之后,在SageMath界面下打开Jupyter。例如,$./SageMath/sage -n jupyter。前面的SageMath是SageMath的安装目录。SageMath自带了Jupyter,因此,不用重新安装Jupyter。
  2. 第二,单独安装Jupyter和SageMath。在Jupyter界面下打开SageMath。为了能够让Jupyter知道SageMath在哪里,我们需要安装一个Jupyter拓展包,通过下面的命令:$sudo jupyter kernelspec install SageMath/local/share/jupyter/kernels/sagemath。其中的SageMath是SageMath的安装目录。之后,就可以通过运行jupyter notebook来实现通过Jupyter来使用SageMath和Python了。
  3. 如果你还想在任意的目录下都能够通过运行jupyter notebook来实现通过Jupyter来使用SageMath和Python,则还需要修改路径设定,让系统知道SageMath的sage文件和bin文件存在哪里。例如,通过在.bashrc中增加一行:export SAGE_ROOT=SageMath。其中SageMath是SageMath的安装目录,例如/opt/SageMath。以及添加路径,例如 export Path=SageMath:$PATH 来实现。

    注意,这是linux系统,Python是默认系统性安装的。如果其他系统,可能还需要在Jupyter下配置Python。

    安装一个可以在网上完成这个计算——通过Jupyter来集成使用SageMath和Python——的服务器。甚至可以考虑建一个包含机器学习功能的服务器,例如通过anaconda(可以连接上TensorFlow或者其他机器学习包)。如果使用anaconda则可以采用清华anaconda软件仓库

    如果希望其他用户也能够使用这个带了SageMath内核的jupyter notebook,则还需要安装JupyterHub。

“项目学习和概念地图用于机器学习”学习小组

有一些研究工作,例如文章的监督分类和非监督分类、概念和概念之间关系的自然语言处理,需要尝试一些新的分析算法。受到最近照片分类的工作的启发,打算用机器学习来试试。这个学习小组定位在理解了的工具的层次,旨在自觉自发地创造性地运用机器学习来处理自己工作中的问题。

学习材料整理,见小组目前的成员的博客,以及本网站上的相应论坛

把学习小组的要求提一下。小组成员分成两种类型:严肃的学习者和贡献者、感兴趣的人。对于感兴趣的人,我们不提非常明确的要求,仅希望积极参与讨论。学习者和贡献者需要做报告,报告之前需要提前阅读(听课)和准备。准备工作需要做好总结(图形化,推荐概念地图、思维导图):整体思路、重点问题和项目的联系(也就是应用的问题)。所准备出来的材料最好事先先传到小组的网站。

希望有兴趣的严肃的学习者来参与。

编程的学习

必要性:当你对世界的运行有一个猜想或者理解的时候,你想检验一下;当你有这个世界运行的数据,你想发掘一下;当你有一个问题没法解析求解,你想大概看一下,你都需要运用计算机,而且通常是自己编程,来解决问题。

这个时候,最重要的是学会像计算机语言一样思考问题。具体来说,反映在面向过程编程上就是:知道流程的每一步,程序–想象成你自己–会面对什么数据什么情况,下一步做什么,尤其是所有流程控制的关键点。反映在面向对象的编程上面,就是要把问题转化成为对象和对对象的操作来解决。要搞清楚什么时候创建对象,什么时候改变对象的状态,用户做什么会激活这些创造对象和改变对象状态的事情。

这个像计算机一样思考回到传统的编程的时候你熟悉的语言就是画出流程图,以及搞清楚对象的抽象接口。

具体到语言的学习,不同的语言有不同的优势。可以考虑利用C语言来做科学计算和核心计算分析模块,利用Python来做字符处理、组装程序,用R语言来做统计分析,利用shell语言来做组装程序、输入输出和增加程序灵活性的控制。了解大量的程序包,并且熟悉其中的一部分。例如,所有的矩阵运算可以考虑lapack,傅立叶分解可以利用FFTW,一般积分插值等数值计算可以用gsl等等。

算法,语言本身,只要不是开创,是很简单的事情,通过编写一两个程序,也就学会了。进一步,我们不是真的计算机科学家,因此,算法方面,大多数时候,应该站在巨人的肩膀上,用其他人开发好的程序库来实现。语言本身大概包含程序的基本结构、数据类型、流程控制,库函数。前面的三个几个小时编一两个程序就能学会。后面的,用到再学,先大概浏览知道有哪些功能即可。

学会像计算机一样思考,了解语言和程序包之后,就需要开始写程序。写程序需要有良好的习惯和风格,例如变量和函数的名称要有意义,利用好注释,本功能拆分成尽量独立和能重用的子程序。缩进、大小写尽量保持一致。

当好科学家不是一件容易的事情,你希望各种理念和工具上,都走在世界的前面。

安装计算用ubuntu的步骤

1、安装ubuntu桌面版或者服务器版。配置IP地址、机器名、域名等。配置sudo用户帐号。
2、安装计算机硬件驱动,有可能需要ubuntu additional driver,如果遇到broadcom的网卡,还需要特殊处理。通常ubuntu已经为各种硬件做好了准备。
3、调整软件源。在我这里mirror.neu.edu.cn不错,也可以在图形环境下自动选择最快的。
4、自动安装openssh server, chromium或者chrome, p7zip-full, latex (texlive手动安装,否则ctex不能使用), office, filezilla, gnuplot, valgrind, grace, r ($ sudo apt-get install filezilla gnuplot valgrind grace p7zip-full r-base)。必要的话,复制字体文件到~/.fonts/目录下。latex在手动安装之后,需要修改路径,例如export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH或者修改.bashrc文件,或者/etc/enviroment文件。
5、自动安装gcc, g++, gfortran, cmake, build essential ($ sudo apt-get install cmake build-essential gfortran)。
6、手动安装openmpi, mpich (mpiexec)
7、手动安装intel MKL(intel MKL安装脚本相当自动,不需要重新编译,只需要运行sudo ./install.sh
8、手动安装anaconda,以及在anaconda 下面安装igraph, NetworkX
9、手动安装fftw, lapack (lapack+atlas+blas), petsc, slepc, networksX, igraph, xmds2, gsl

手动安装mpich:1)下载和解压mpich。2)进入mpich的解压后目录,mkdir Build,进入Build,configure (../configure --prefix=/opt/mpich --enable-shared 2>&1 | tee c.txt),make(make 2<&1 | tee m.txt),install (sudo make install 2>&1 | tee mi.txt)。3)检验mpiexec是否正确运行。有可能需要加入 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib。

手动安装hydra:跳过,暂时不用。mpich已经默认提供了这个任务管理器。

手动安装openmpi:1)下载和解压openmpi。2)进入openmpi的解压后目录,mkdir Build,进入Build,configure (../configure --prefix=/opt/openmpi ),make (make -j 12 all ), install (sudo make install )。3)检验mpiexec是否正确运行(例如运行, /opt/openmpi/bin/mpiexec -n 3 hostname)。

手动安装MKL(Intel数学核):下载、解压、进入目录,运行sudo ./install.sh,按照提示设置安装路径。使用的时候,要注意编译过程的链接方式(lib,include),可以参考Intel® Math Kernel Library Link Line Advisor

手动安装fftw:1)下载和解压fftw。2)进入fftw的解压后目录,configure (./configure --enable-mpi --prefix=/opt/fftw --enable-shared ),make (make), install (sudo make install )。

手动安装gsl:下载,解压,进入目录,configure (./configure --prefix=/opt/gsl) (默认路径可能与系统安装的冲突)。make(make all), install (sudo make install)。

手动安装atlas+lapack: 1)下载和解压atlas,下载lapack。2)进入atlas的解压后目录,mkdir Biuld,进入Build,../configure -b 64 -D c -DPentiumCPS=3400 –prefix=/opt/atlas –with-netlib-lapack-tarfile=/home/…/lapack-3.5.0.tgz –shared。3) make build, make check,make ptcheck,make time,sudo make install

在安装atlas的时候,可能需要关掉CPU节能模式。这个可以采用修改grub的形式,或者修改/etc/init.d/cpufrequtils 文件。

手动安装anaconda:下载anaconda安装文件Anaconda3-5.3.1-Linux-x86_64.sh,运行安装文件./Anaconda3-5.3.1-Linux-x86_64.sh,考虑到底是系统层面安装还是用户层面安装。系统层面则,考虑安装到/opt/anaconda3,并且设定相应的PATH或者允许anaconda在.bashrc文件里面添加一行代码。安装anaconda之后,需要修改一下软件仓库,例如用清华的TUNA,通过运行如下命令行:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

主语conda虚拟环境最好安装在每一个用户自己的目录下面,尽管anaconda本身是系统层面的安装。如果需要共享虚拟环境可以考虑用分享环境设置文件的方式。尤其是当用具有sudo权限的用户建立虚拟环境的时候,目录的权限有的时候会是一个问题。例如虚拟环境是sudo命令下安装的,但是运行(activate)的时候没有带sudo,就会遇到路径权限的问题。因此,最好每一个用户自己建立自己的虚拟环境。

手动安装igraph:0) 安装igraph依赖的libxml包sudo apt-get install libxml2-dev
1)C-igraph,下载和解压igraph。进入igraph的解压后目录, configure(./configure --prefix=/opt/igraph), make(make), install (sudo make install), 然后需要添加/opt/igraph/lib到LD_LIBRARY_PATH:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/igraph/lib。为了让系统,例如通过运行pkg-config --libs --cflags igraph,来知道igraph函数库如何链接到其他程序,需要把igraph.pc加入到 PKG_CONFIG_PATH(例如通过在.bashrc里面增加一行export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/igraph/lib/pkgconfig
2)R-igraph,sudo R,然后在R内部运行install.packages(“igraph”)。
3)Python-igraph,交给pip来安装(pip install python-igraph,这个时候需要系统能够通过pkg-config找到igraph)或者手动安装:下载python-igraph,解压,进入目录,修改setup.py文件中igraph的路径(/opt/igraph/include, /opt/igraph/lib),python setup.py build,然后运行 sudo python setup.py install。

Python-igraph也可以单独安装在anaconda下面某一个虚拟环境中,例如igraphNetworkX:1)建立一个anaconda虚拟环境conda create -n igraphNetworkX;2)pip安装python-igraph(pip install python-igraph 3)在此之前,需要修改pip设置来用TUNA pip软件仓库(pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple)。

手动安装networkX:sudo pip install networkX或者在anaconda虚拟环境下安装networkX(source activate igraphNetworkX然后,pip install networkX)。

手动安装torque:下载,解压,进入目录,./configure, make, sudo make install (其中,可能需要安装libssl-dev包,自动安装这个包即可)。如果出现动态库的错误。需要建立一个/etc/ld.so.conf.d/torque.conf的文件,其内容为/usr/local/lib(torque库文件的位置),然后运行ldconfig。安装torque就完成了。下面是配置torque。

配置torque:(没搞定)

手动安装petsc:下载,解压,进入目录,设定参数 PETSC_ARCH(export PETSC_ARCH=real-mkl-debug),然后configure(./configure --with-blas-lapack-dir=/opt/intel/mkl/lib/intel64 --with-scalar-type=real --with-clanguage=c --with-fortran-kernels=1 --download-scalapack=scalapack.tgz --download-superlu=superlu_5.2.1.tar.gz --with-debugging=1 --with-fftw-dir=/opt/fftw --prefix=/opt/petsc/real-mkl-debug --with-mpi-dir=/opt/mpich
)。然后make(make all test或者按照configure结束以后的提示来做), 安装(sudo make install)。–with-debugging=1可以改成0,同时修改PETSC_ARCH=real-mkl-run和修改安装目录–prefix=/opt/petsc/real-mkl-run。类似的,把–with-scalar-type=real改成complex就可以安装用于复数矩阵的petsc。

手动安装slepc:下载,解压,进入目录,设定参数 export PETSC_DIR=/opt/petsc/complex-mkl-debug(petsc安装目录), unset PETSC_ARCH,然后configure(./configure --prefix=/opt/slepc/complex-mkl-debug,make (make all test或者按照configure结束以后的提示来做),安装(sudo make install)。注意,configure完成之后的每一步系统都会给出下一步的提示。随着版本的不同,上面的命令可能会失效,需要按照提示来操作。

手动安装petsc4py: export PETSC_DIR=/opt/petsc/complex-mkl-debug
export PETSC_ARCH=complex-mkl-debug
sudo pip install petsc4py

手动安装slepc4py: export SLEPC_DIR=/opt/slepc/complex-mkl-debug
export PETSC_DIR=/opt/petsc/complex-mkl-debug
export PETSC_ARCH=complex-mkl-debug
sudo pip install slepc4py

这两个软件包,建议由用户安装到用户目录(pip install --user petsc4py slpec4py)。例如jinshanw用户下的SciCalc虚拟环境中就安装了python-igraph, netowrkX, petsc4py, slepc4py,并且能够运行jupyter notebook来使用SageMath

手动安装sprng5:下载,解压,进入目录,./configure –prefix=/opt/sprng5 (默认路径可能与系统安装的冲突)。make all, sudo make install。sprng5的语言是C++。如果你需要在C语言中调用sprng5,后期需要用g++来link。