The best input is OUTPUT.

2017-06-18
编写Bootstrap插件的步骤

编写Bootstrap插件的步骤

最近在给自己的动力学模拟程序写个web界面,目前采用了bootstrap + flask的组合, 看了下bootstrap的一些组件样式和内置的插件的使用,在实现自己的网站的时候肯定会有自己的需求,于是需要开发或者扩展Bootstrap插件,这里就总结下开发Bootstrap插件的步骤。

Bootstrap插件本质上就是一个jQuery插件,除了将插件函数绑定到jQuery的原型对象上以外,Bootstrap还需要遵守一些其他的额外的步骤方便维护和学习等。

Read More

2017-06-03
算法分析中的渐近记号总结

算法分析中的渐近记号总结

最近在看算导决定抽空把算法基础在夯实一遍, 算法相关的实现代码时不时会丢到GitHub上,主要以C++实现,也会有相应的Python和Javascript的实现。

在这里,作为算法的渐近分析的标准方法之一,对几种渐近记号进行下总结.

渐近记号

所有的渐近记号都表示一个函数的集合.

Read More

2017-04-25
基于matplotlib的2D/3D抽象网格和能量曲线绘制程序

基于matplotlib的2D/3D抽象网格和能量曲线绘制程序

前言

最近在写文章需要绘制一些一维的能量曲线(energy profile)和抽象的二维和三维的网格来表示晶体用来描述自己的算法,于是自己在之前的脚本的基础上进行了整改写成了只提供接口的Python库,基本思想就是封装了matplotlib中相关接口,方便快速搭建和定制自己的能量曲线和网格结构, 代码托管在GitHub上并上传至PyPI。对于研究晶体材料的同学如果想通过python来绘制简单的晶格图像可以参考一下。

Read More

2017-03-26
优雅的在终端中编写Python

优雅的在终端中编写Python

前言

最早我也只是在服务器上编辑文件的时候用用vim来改改程序,并没有把vim当做自己的主力编辑器。但是偶然的一次机会需要改一个奇葩的输入文件的格式,用了下Vim的宏录制,尝到了甜头,于是后面就开始用Vim来写程序了,虽然使用初期有些阻力,但时间久了就会发现,双手再也不用离开键盘,即使使用sublime这样的编辑器我也要改成使用Vim模式,Vim真的能让自己一思维的速度编辑文本(对我来说就是写程序了)。

正好最近换了新的电脑,需要在新电脑上配置一下,就干脆把一些配置相关的东东记录下来吧,相关的配置文件我都放在了github(https://github.com/PytLab/dotfiles) 上并写了相应的安装和卸载脚本,给有需要的同学做个参考吧。

本文是有关配置的文章,并不对Vim的核心技巧进行说明,有需要的童鞋可以参考文档和相关书籍。这里主要配合tmux和vim可以更有优雅的帮助我们在终端中进行Python编程。

Read More

2017-02-19
Python多进程并行编程实践-mpi4py的使用

Python多进程并行编程实践-mpi4py的使用

前言

在高性能计算的项目中我们通常都会使用效率更高的编译型的语言例如C、C++、Fortran等,但是由于Python的灵活性和易用性使得它在发展和验证算法方面备受人们的青睐于是在高性能计算领域也经常能看到Python的身影了。本文简单介绍在Python环境下使用MPI接口在集群上进行多进程并行计算的方法。

MPI(Message Passing Interface)

这里我先对MPI进行一下简单的介绍,MPI的全称是Message Passing Interface,即消息传递接口。

  • 它并不是一门语言,而是一个库,我们可以用Fortran、C、C++结合MPI提供的接口来将串行的程序进行并行化处理,也可以认为Fortran+MPI或者C+MPI是一种再原来串行语言的基础上扩展出来的并行语言。

  • 它是一种标准而不是特定的实现,具体的可以有很多不同的实现,例如MPICH、OpenMPI等。

  • 它是一种消息传递编程模型,顾名思义,它就是专门服务于进程间通信的。

Read More

2017-02-16
推荐一本不错的MPI教程

推荐一本不错的MPI教程

今天看到一本很不错的MPI教程,内容并不是很多,但是讲的非常清晰,并且图示画得非常通俗易懂,比我第一次学习MPI时候看的那本清华大学出版社的《MPI并行程序设计实例教程》好很多,不知道是不是自己已经熟悉MPI的原因,反正我对这本书颇有好感,虽然代码是C和Fortran都有,但是默认以Fortran为主,推荐想学习MPI并行编程的童鞋参考这本书。

Read More