安装计算用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。

广义投入产出分析的几个基本问题

第一、传统产出端的分析:如果我们知道下一阶段的新增(或者新降低)的产出向量(由每一个产品或者每一个部门的产量构成)$$\Delta Y^{F}$$,如何求得整个系统总产出向量的变化$$\Delta X^{F}$$?(在这里隐含了假设,原材料投入是无穷的,需要多少有多少)

第二、传统投入端分析:如果我们知道下一阶段的新增(或者新降低)的投入向量(由每一个产品或者每一个部门的接受投入量构成)$$\Delta Y^{B}$$,如何求得整个系统总投入向量的变化$$\Delta X^{B}$$?(在这里隐含了假设,需求是无穷的,生产多少就能有多少进入市场并产生效益)

第三、如何度量部门$$j$$的总影响力:去掉这个部门之后总产出向量或者总投入向量的变化?

第四、部门$$j$$对部门$$k$$的影响力如何度量?

第五、增加投入对产出的影响:仅仅增加部门$$j$$的投入,或者增加一个初始的固定的(可以浪费留着不能突破限制)投入向量,总产出向量如何变化?(在这里原材料投入不再是无穷的。可能需要区分固定配比的生产模式与模糊的生产模式。前者就像化学反应,后者是目前的部门层次的投入产出表)

第六、减少投入对产出的影响:仅仅减少部门$$j$$的投入,或者减少一个初始的固定的(至少减少这么多,可以减少的更多)投入向量,总产出向量如何变化?

第七、增加产出对投入的影响:仅仅增加部门$$j$$的产出(假设需求增加了),或者增加一个固定的(可以增加更多,不能不满足)产出向量,总投入向量如何变化?

第八、减少产出对投入的影响:仅仅减少部门$$j$$的产出,或者减少一个固定的(至少减少这么多,可以减少的更多)产出向量,总投入向量如何变化?

一、二,原始的投入产出分析已经能够回答。三、四,投入产出领域后来发展的HEM能够回答。剩下的问题,传统投入产出分析是否已经回答,还有待进一步了解。

我们新发展的投入产出分析已经能够回答三、四,目前看起来基本能够回答五、六、七、八,是否能够回答一、二尚待研究。

关于开放系统与封闭系统:自然界(原材料)加上人类(劳动力)构成生产系统的投入端,人类(消费)加上自然界(垃圾)构成生产系统的输出端。在开放系统的视角下,自然界与人类的本身的动力学(例如垃圾的自然处理,循环系统,人类本身的生产)不考虑在内,因此,自然界和人类都是这个生产系统的外界。在封闭系统的视角下,把自然界和人类的动力过程内生化,于是整体构成了一个大的生产系统。原则上两种视角是等价的。但是考虑到实际数据和特征时间尺度的问题,往往两种视角取其一。

用两个例子来解释大物理学

为了推广我提出的所谓“大物理学”的思路,给学生准备了一个用具体研究工作的例子来阐述什么是大物理学。大物理学就是:把数学、物理学的思想、角度、概念、计算方法、模型推广到非传统物理学的研究对象上,以及推进对这种类型的数学、物理学的思想、角度、概念、计算方法、模型本身的研究的基本问题。其中,如果通过前者促进了后者的发展,那更加是大物理学的核心内容之一。具体的研究对象和研究问题并没有限制。大概来说,按照历史发展,已经有这么几个方面:远离平衡的系统中结构的产生,非平衡系统的基本问题,人类行为(在社会、经济系统之中)的客观一面等等。留待以后慢慢总结。更详细的讨论见:大物理学,Big Physics

第一个例子是关于我们最近的科学学的工作的。第二个例子是我们汉字学习的研究工作。我们计划把其他人的工作也整理一下,如果这个工作:第一、促进了“系统科学”、“大物理学”的基本理论的进展;第二、拓展了“大物理学”的应用领域;或者第三、通过拓展应用,提出了新的基本理论的问题。

为了卖私货,我把其它的例子也放了进去。其中还有一部分给学生门总结的学习资料、如何学习、如何看文章、如何遍程序。部分内容在系统理论进展报告过。JinshanSSBNU

转SCI论文全攻略(部分内容很有借鉴意义,但是要做批判性阅读)

第一部分:选题与创新

一、先想先写最后做:
1. 做研究之前,必须想清楚:结果能不能发表?发表在哪里?
2. 先把文章大框写好,空出数据,等做完实验填完空就可以发了;正所谓心中有沟壑!
3. 在未搞清“写什么、发哪里、自己研究与同类研究有何出色之处”之前,就不要动手做!
4. 继续去看文献,去想;想不清楚就做还不如不做!
5. 要想这样做,就得先看文献!要知道如何把文章架起来、要知道别人是如何讨论的、要知道自己的数据是不是说明了与别人不同的东东或别人没有做过……这个过程 就是阅读文献及思考的过程,这些搞清楚了,写就简单了!
6. 要是先做事,做完发现别人做过,或无法用理论来解释,岂不是冤大头?
二、如何科学选题:
  1. 课题选择和国际接轨。想在国际核心期刊发表文献,就必须了解国际研究动态,选择与国际 学术研究合拍的课题。由于多方面因素的影响,我国科学研究选题与国际先进水平还有一定距离。我国一家权威科研机构不久前在国内挑选了许多前沿 领域的研究课题,准备参与国际合作,但到美国后发现近三分之二的课题已经不属前沿,在美国很少有人研究。在高校,一些教师治学严谨、基础扎 实,但科研成果不突出,重要原因就是不重视有关领域学术动态,不能选得合适的课题。
  2. 课题要有可发展性。课题可发展性对高水平论文的持续产出具有极大作用。中国科技大学 范洪义另辟蹊径,发展了诺贝尔奖得主狄拉克(Dirac)奠定的量子论的符号法,系统地建立了“有序算符内的积分理论”,1998年有24篇 论文被SCI收录;他对自己论文高产的解释是,研究“具有开创性,突破一点以后就可以向纵深发展,使研究工作自成系列、成面成片”。我院被 SCI收录论文最多的杨新民老师从事凸性理论研究,该理论兴起于 20世纪70年代,90年代进入高峰。作为新兴研究领域,该理论本身有许多尚待研究之处,同时该理论也可用来解决最优化方面的问题。反之,有人由于所接触 的问题已处于该研究分支的末端,即使在该点上有所突破,也难持续发展。
3. 借助工具选题:①查阅有关领域的检索工具,这些工具各高校都有;②了解SCI收录期刊所反映的科技动态,ISI期刊信息可从http://www.isinet.com查获,也可从SCI印刷版每期A、D分册的来源出版物目录(Lists of Source Publications)查找,还可从ISI引用期刊报告 (Journal Citation Reports,简称JCR)了解期刊信息,该文献有印刷版、网络版(JCR on the Web)和光盘版 (JCR on CD-ROM);③利用ISI提供的选题工具帮助,例如,能对正在开展的工作进行量化分析以保证用户科学研究同科学发展趋向一致的(Essential Science Indicators),介绍有关最杰出人物研究状况、有关领域研究热点和发展趋向的(ISI Highly Cited.com);④利用网上数据库了解国际学术研究动态及有关资料。只要有心参与国际学术竞争,选择与国际学术研究接轨的课题并不存在难以克服的障 碍。
三、如何获得好的idea
无论是临床还是基础科研,最关键的是idea,idea的出台决定了科研水平和档次。高水平的科学家一听你的科 研课题和方向,就能判断你科研水平。因此,获得好的idea是至关重要的。
1. 优秀科学家要具备敏锐的科研嗅觉,而这种敏锐性是经过长期的思考和实践获得的。通过几天或半个月的苦思苦想得到了一个自以为很好的idea,很可能是别人 十几年前就做过的工作。但新手上路时重复一些经典实验以获得经验是很正常的。此外,科研要注重质量,千万不要为单纯地追求数量而令懂行的人嘲笑。如何获得idea呢?
A. 大量地、仔细地阅读 文献,多听学术报告、多与同行探讨,从中获得启示,不能急于求成。
B. 总结感兴趣领域内尚 未探讨过但很有意义的课题;
C. 总结争论性很强的问 题,反复比较研究方法和结论,从中发现切入点;
D. 善于抓住科研过程中遇到的难以解释的问题,往往会成为思维的闪光点;
E. 细致地拟定方案,论 证可行性。

2. 获得idea的两种途径:传统途径就是先阅读大量科研论文,弄清目前的研究现状和要解决的问题等; 非传统的途径是自己先冥思苦想一段时间,有了自己的idea后再去查文献。这样不会让以往的研究限制你的思维,不失为一个很好的 方法。别人没作过的东西,也许不是因为别人没想到,而是因为没有意义或者没有可能性。
3. 获得良好idea的基础前提:
A. 在科研前必须弥补基础知识,这是看懂文献的基础:《生物化学》《细胞生物学》《基因 VIII》必看(先看中文版翟中和《细胞》王境岩《生化》赵寿元《遗传》朱玉贤《分子》;再看英文的Albez《cell》赖宁格 《biochemistry》还有经典的《gene 8》)。
B. 广泛阅读文献是支撑。硕士至少查阅600篇,粗看300篇,细看100篇,研读50篇。 博士至少再多一倍,并始终关注国际动态。《nature》《science》《cell》《PNAS》《JBC》《MBC》《Genes & Development》不放过,SCI-3分以上期刊应该耳熟能详!
C. 学会阅读文献,读懂文章。建议先review再article,先中后英;中文只看《科 学通报》《中国科学》,其他不看;看10-20篇review后看研究性论文。拿到一篇研究性论文,先看标题,立即停住,问自己几个问题: (1)想想别人这文章是怎么做的(可参考材料方法)?会做哪些内容来说明其标题?(2)明白他为什么要做这个吗?(3)如文章是近半年内发表 的,该文章解决了什么问题?引出了什么问题(结合你看的综述)?接下来仔细看摘要,就知道你的想法是否与别人吻合?(4)看完实验结果,再思 考有什么地方不完善?有没有深入或拓展到底?一般来说,SCI-3分以下的文章只可能做了一部分机理,下面肯定有东西可做,关键是你自己要思 考,去发现。
4. 长期作战持之以恒。做好上面所述要求肯定会有所谓idea,但过程艰辛,需长时间磨练,需要 patience和passion。有天赋的人能考上海中科院生命科学院,北京中科院那几个所,北大、清华。耐心干5年,这些地 方正为中国带来更多本土nature、science文章。
四、博士如何出牛文章?
1. 几点忠告:多看paper没有坏处;多找非老板的其他人,如其他教授,postdoc,前辈师兄等讨论,借鸡下蛋;可以动手的东西容易上手,比如软件等; 找机会去开会,认认牛人,不发paper,做做volunteer,或者参加phd symposium之类。五主动参加seminar,自己讲几次看过的paper,最好自己组织一个topic拉几个师兄弟和postdoc参加,注意找 几本教科书看看,打好基础。
2. 如何获得IDEA:
A. 需对研究的领域有一个全局性了解,按老板的话说是要有bird eye。
B. 要有bird eye,需比较全面地阅读本领域文章。读文章要其idea,总结成一句话,并用卡片记录好,分类整理。如果把别人文章的idea总结成一句话,就容易理解 它的本质,也好作变化。
C. 读了很多文章后,可 以写一个special study,将读过的本领域东西系统总结在一起,相当于你的综合理解,也就是bird eye看到的东西了。以后翻阅起来也相当方便。
D. 用心分析对于别人的idea,任何一个idea都有weakness;想办法解决它,那就成自己idea。最好的办法就是看大牛的paper,无论他有多 牛,他的文章总是在说一个方面,总有其他东西没有包括进去,把他的文章认真精读了,总会发现漏洞和不足或不全面之处,然后你就知道怎 么做了。记住:每篇文章几乎都有没有考虑完全的东西。
E. 时不时阅读更广泛领域的东西,扩大bird eye范围,对领域外的感兴趣的文章进行copy收藏,这个叫walk around a little bit,很多领域外的东西可以借鉴、学科交叉从而产生new idea。
F. 经常跟牛人、博士后 或高年级博士等有思想的人(最好不是相同专业,而是相关专业或交叉学科)讨论,也容易出idea。再有就是,关注其他专业的书籍、杂 志等信息,从中获取交叉创新idea。

另外很有意思的一个案例研究,真正有远见的科学家的综述要经常读

Eugene Garfield在他的微型综述A Retrospective and Prospective View of Information Retrieval and Artificial Intelligence in the 21st Century,有这样一段话:

The prototype for this type of aposteriori intelligence is
John O’Connor’s brilliant attempt to develop systems for
scanning the full text of a document, which never mentions
the word toxic or toxicity and yet an intelligent automation
could conclude that it contains an indication of toxicity
(O’Connor, 1965).

讨论了这样一件事情:有一篇文章没有全文出现过toxic和toxicity的字眼,但是通过关键词相关算法(通过这篇文章的引文的以及引用这篇文章的文章的关键词,可以计算出此文章的关键词),发现这篇文章就是关于toxicity的。一个例子说明了这种关键词相关算法的价值。

这个迷你综述的全文也很有意思。短短的篇幅,给出了这个领域基本上所有的基本问题。作者是ISI的建立者,科学学领域的建立者,确实不一样。