苟利国家生死以,岂因祸福避趋之

0%

信息公开网公开的《华东师范大学2018-2019学年本科教学质量报告》[1]显示,2018-2019学年华东师范大学化学与分子工程学院本科毕业生就业率达100%。化学与分子工程学院是学校10个本科毕业生就业率达100%的院系之一。

参考资料


  1. 1.华东师范大学2018-2019学年本科教学质量报告 http://xxgk.ecnu.edu.cn/s/202/t/377/a8/04/info174084.htm

2019年11月11日晚,数十名爱国学生自发聚集在一起,发起“反废青”爱国集会。此前,“废青”们计划当晚在罗格斯大学道格拉斯学生中心散布有关香港的谣言,引起了极大愤慨。爱国学生自发策划了是次活动,旨在传播真相,抵制谣言。

在“废青”的要求下,道格拉斯学生中心加强了安保,禁止带入宣传性标语和专业摄像设备,禁止摄像和拍照,禁止散布传单。这些措施限制了真相的传播,但不能限制爱国学生们传播真相的决心。“废青”们自称受女权组织资助,宣扬所谓“民主”,与香港暴徒连线,声称他们是“非暴力”、“和平”的。现场爱国学生对这些谎言表示愤怒,但为了维护国家形象,爱国学生们保持了最大限度的克制,准备在“废青”们声称的所谓问答环节戳穿他们的谎言。

然而到了休息时间,“废青”声称问答将不会现场提问,而是以所谓问卷的形式进行。一时间,现场学生纷纷抗议“问答”造假,使用预先准备好的问题,压制真相和异议。休息时间结束后,“废青”承诺问题不会造假,然而果然使用了预先准备好的问题。爱国学生群情激愤,纷纷离场以示抗议。在场外唱国歌的提案遭到了否决,爱国学生一致同意国歌是神圣而不可侵犯的,用于抗议“废青”有损国歌的尊严。一名女生当场痛哭,痛诉香港“废青”传播谣言的罪恶行径。

次日,校报The Daily Targum对爱国学生分发传单谴责“废青”的行动,以及对“废青”掩盖真相的抗议进行了报道。

本次爱国集会使香港“废青”“双标”式的“民主”谎言暴露于世,他们的所谓“民主”便是压制一切与己不同的观点,与法西斯主义无异。希望全世界能看清香港“废青”的真面目,不被谎言蒙蔽。

(题图来自校报The Daily Targum,图注为Students who opposed the Hong Kong protests distributed double-sided flyers outlining their position to other attendees. SALMA HQ)

2019 年 10 月 24 日(UTC-4)微信公众号

近日,我已经通过 conda-build[1]构建了 deepmd-kit(含 lammps 模块)的 conda packges[2],并用 constructor[3]打包了离线安装包。下介绍安装方法及注意事项:

一、conda 安装

安装 conda 后,使用以下命令安装 GPU 版:

1
2
3
4
conda install deepmd-kit=*=*gpu lammps-dp=*=*gpu -c deepmodeling
将gpu改为cpu即可安装CPU版:
```bash
conda install deepmd-kit=*=*cpu lammps-dp=*=*cpu -c deepmodeling

如需指定版本,需将两个等号中间的*号改为版本号(目前有 1.0.1 和 0.12.8):

1
conda install deepmd-kit=1.0.1=*cpu lammps-dp=1.0.1=*cpu -c deepmodeling

二、离线安装

https://github.com/njzjz/deepmd-kit-recipes/releases 下载 v1.0.1 离线安装包(也提供了百度网盘链接):

releases

下载后执行以下命令,按提示操作即可。

1
sh deepmd-kit-1.0.1-*pu-Linux-x86_64.sh

三、使用与注意事项

dp 和 lmp 分别为 deepmd-kit 主程序与 lammps:

1
2
dp -h
lmp -h

GPU 版本已经包含 CUDA 10.0,需要注意的是 CUDA 10.0 仅支持 NVIDIA 驱动 410.48 以上,详情可参见 NVIDIA 官网 https://docs.nvidia.com/deploy/cuda-compatibility/

运行 dp 命令时,应设置环境变量KMP_BLOCKTIME=0KMP_AFFINITY=granularity=fine,verbose,compact,1,0,否则会导致高达50%的性能损失。这是由于 anaconda numpy 一个存在多年的 bug[4]


  1. 1.conda-build https://github.com/conda/conda-build
  2. 2.deepmd-kit-recipes https://github.com/njzjz/deepmd-kit-recipes
  3. 3.constructor https://github.com/conda/constructor
  4. 4.numpy/numpy#12374 https://github.com/numpy/numpy/issues/12374

2019 年 10 月 17 日微信公众号

先介绍一下机器环境,CentOS 7.6,系统自带的 gcc 4.8.5,自己安装的 anaconda,icc 19.0.4,CUDA 10.1,CUDNN 7,连有互联网。目标是安装带有 TensorFlow 2.0.0、DeePMD-kit 1.0.1 的用 icc 编译的 LAMMPS 7Aug2019。

一、编译 TensorFlow C++库

1
conda create python=3.7 bazel git cmake -n dpdev -y

先创建一个 conda 环境,带 bazel、git、cmake,之后会用到。

1
2
3
4
5
conda activate dpdev
git clone https://github.com/tensorflow/tensorflow -b v2.0.0 --depth=1
cd tensorflow

./configure

这时候一般来说选默认值敲回车就行,但需注意以下几个选项:

Do you wish to build TensorFlow with CUDA support? [y/N]:Y

如果不需要编译 GPU 版本,这边可以直接用默认值,下面的选项都不会碰到。

Please specify the CUDA SDK version you want to use. [Leave empty to default
to CUDA 10]: 10.1

Please specify the comma-separated list of base paths to look for CUDA
libraries and headers. [Leave empty to use the default]:
/scratch/jz748/cuda-10.1

Please specify a list of comma-separated CUDA compute capabilities you want to
build with.

You can find the compute capability of your device at:
https://developer.nvidia.com/cuda-gpus.

Please note that each additional compute capability significantly increases
your build time and binary size, and that TensorFlow only supports compute

capabilities >= 3.5 [Default is: 3.5,7.0]: 6.0,7.5

这里需要至https://developer.nvidia.com/cuda-gpus查询GPU对应的capanilities,例如P100对应6.0,2080Ti对应7.5。

选项完成后,开始编译:

1
bazel build -c opt --verbose_failures //tensorflow:libtensorflow_cc.so

这里需要等待很长很长很长时间,可以稍作休息,等待编译结束。

1
export tensorflow_root=/scratch/jz748/tf2/libtensorflow_cc

指定 libtensorflow_cc 的安装目录,然后 copy 一大堆文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mkdir -p $tensorflow_root/lib/
cp -d bazel-bin/tensorflow/libtensorflow_cc.so* $tensorflow_root/lib/
cp -d bazel-bin/tensorflow/libtensorflow_framework.so* $tensorflow_root/lib/
cp -d $tensorflow_root/lib/libtensorflow_framework.so.2 $tensorflow_root/lib/libtensorflow_framework.so
mkdir -p $tensorflow_root/include/tensorflow
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' bazel-genfiles/ $tensorflow_root/include/
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' tensorflow/cc $tensorflow_root/include/tensorflow/
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' tensorflow/core $tensorflow_root/include/tensorflow/
rsync -avzh --include '*/' --include '*' --exclude '*.cc' third_party/ $tensorflow_root/include/third_party/
rsync -avzh --include '*/' --include '*' --exclude '*.txt' bazel-tensorflow/external/eigen_archive/Eigen/ $tensorflow_root/include/Eigen/
rsync -avzh --include '*/' --include '*' --exclude '*.txt' bazel-tensorflow/external/eigen_archive/unsupported/ $tensorflow_root/include/unsupported/
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' bazel-tensorflow/external/com_google_protobuf/src/google/ $tensorflow_root/include/google/
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' bazel-tensorflow/external/com_google_absl/absl/ $tensorflow_root/include/absl/
cd ..

二、编译 DeePMD-kit C++库

TensorFlow 编译完成后,我们来编译 DEEPMD:

1
2
3
4
git clone https://github.com/deepmodeling/deepmd-kit
mkdir deepmd-kit/source/build
cd deepmd-kit/source/build
export deepmd_root=/scratch/jz748/tf2/libdeepmd

此处指定 deepmd 的安装位置。

1
cmake -DUSE_CUDA_TOOLKIT=true -DTENSORFLOW_ROOT=$tensorflow_root -DCMAKE_INSTALL_PREFIX=$deepmd_root ..

注意安装 GPU 版本时才需要 USE_CUDA_TOOLKIT 选项。

1
make -j28 && make install

将 28 改为编译时需要使用的核心数。

1
make lammps

此时会产生 USER-DEEPMD 文件夹。

1
cd ../../..

三、编译 LAMMPS

1
2
3
git clone https://github.com/lammps/lammps -b stable_7Aug2019 --depth=1
cd lammps/src
cp -r ../../deepmd-kit/source/build/USER-DEEPMD/ .

将刚才生成的 USER-DEEPMD 文件夹拷至此处。

1
make yes-user-deepmd

若已有 Intel 编译器环境(建议使用较高版本的 Intel 编译器):

1
2
make yes-user-intel
make intel_cpu_intelmpi -j28

若无 Intel 环境,只有 gcc 和 MPI:

1
make mpi -j28

编译成功后,ls lmp_* -l

-rwxrwxr-x 1 jz748 jz748 6832824 Oct 16 22:19 lmp_intel_cpu_intelmpi

说明已经编译成功,可以直接使用。(测试成功)

2019 年 10 月 9 日微信公众号发

假定已经安装了 Anaconda(建议使用最新版 2019.07),已连接互联网,则

1.安装 tensorflow(如仅需 CPU 版本的 TensorFlow,则将 tensorflow-gpu 改为
tensorflow):

1
python -m pip install tensorflow

Successfully installed google-pasta-0.1.7 keras-applications-1.0.8
opt-einsum-3.1.0 tensorboard-2.0.0 tensorflow-estimator-2.0.0
tensorflow-gpu-2.0.0

2.安装 deepmd-kit v1.0:

1
python -m pip install git+https://github.com/deepmodeling/deepmd-kit

Building wheels for collected packages: deepmd-kit

Building wheel for deepmd-kit (PEP 517) … done

Created wheel for deepmd-kit:
filename=deepmd_kit-1.0.0-cp37-cp37m-linux_x86_64.whl size=268836
sha256=1f5b1149bbf35c0c96c713cc8b607e0626ad0df6451a7

171d4f6b46acc2d4290

Stored in directory:
/tmp/pip-ephem-wheel-cache-zlksq4dl/wheels/a2/80/6c/a26fba79e43199eb4cdba7a3686c5370d3620916f5a0ea23ac

Successfully built deepmd-kit

Installing collected packages: deepmd-kit

Successfully built deepmd-kit

Installing collected packages: deepmd-kit

Successfully installed deepmd-kit-1.0.0

大功告成!现在看一看是否成功安装:

1
dp -h

usage: dp [-h] {train,freeze,test} …

DeePMD-kit: A deep learning package for many-body potential energy

representation and molecular dynamics

optional arguments:

-h, –help show this help message and exit

Valid subcommands:

{train,freeze,test}

train train a model

freeze freeze the model

test test the model

现在,DeePMD-kit v1.0.0 已成功安装。下一期将介绍如何用 DP 编译 LAMMPS。

当我大二上学期裸考数学竞赛,甚至比赛前一天晚上熬夜玩手机没睡觉,我当然没想到,考试的时候能顺风顺水,最后也获了个小奖。

数学竞赛奖状

数学竞赛,全称应该是全国大学生数学竞赛,大二以上可以在学校报名,在每年的10月,一般会与上海市高校计算机等级考试(二级)撞在同一天。形式很简单,就是3小时的考试,非数学类考高等数学,满分100分,按分数高低给奖。值得注意的是,一场考试能给国家级和省级两个证书,国家级的获奖率是25%,省级稍微高一点,但由于最低成本仅仅是一场考试,相比于参加考试的成本,这个获奖率挺高的,比大学生英语竞赛高很多,教务处的推荐指数也达到了最高级别。和数学建模竞赛一样,学校包车,报销报名费,提供培训讲座(虽然我没去过)。

非数学类的试卷包括计算题和填空题,涉及的知识绝对不超过高等数学教材,可能更注重解题技巧但绝对不超纲,往年真题可以在官网下载。根据我的亲身经验,这一比赛的最佳参赛时间就是大二,原因当然是刚学完一年的高等数学,基础扎实,甚至仅凭基础就能应付考试。如果之后参加,由于记忆衰退,必将一年不如一年。如果想提高竞争力,方法很简单:刷真题。题型和风格各届都差不多,甚至还有碰到往届原题的可能。

数学科学学院每年也会开展校级的数学竞赛(今年的比赛似乎就在今天)。我参加了一次,发现与国赛的题型和风格完全不一样,又没原题,获奖率怎么算都感觉很低……当然由于参赛成本不高,还是值得用一个上午的时间参加的。

下期预告

下期将简单介绍一些我获过奖的其它竞赛,比如大夏杯科赛等等毫无技术含量的,或者今天举办的三创赛,这种虽然有技术含量但我真的不懂的……之后就可以讲讲新的专题了,留学申请、科研、创新创业项目、学生工作、各种活动都可以聊一聊。

当我大一初涉数学建模竞赛时,我却没有想过,大四时能在这一类比赛中获得国家级一等奖。

国家一等奖

这一类比赛的特点是,会在指定时间公布一个题目,要求在3-4天内提交一份论文(及支撑材料),论文的内容即建模解决这一题目。

学校竞赛名单里的数学建模类竞赛包括以下赛事:

全国大学生数学建模竞赛,简称国赛。每年9月举行,大约7月时学校会发通知,9月初在数院报名。参赛成功后学校将退还报名费。该比赛分为省级和国家级两级,但只需提交一次作品。省级比赛由市教委主办,国家级比赛由中国工业与应用数学学会主办。省级比赛颁发一、二、三等奖,三等奖几乎等于参与奖,省级一等奖获得者将在复旦大学参与答辩,根据答辩结果决定国家级的奖项的推荐名单,并送北京审核,包括一等奖、二等奖和没有奖。因此,最终获奖情况包括:国一+省一、国二+省一、省一、省二、省三。由于参与奖(省三)的存在,该比赛性价比极高,强烈推荐参加。

美国大学生数学建模竞赛,简称美赛,每年2月举办,需要自己在网站报名(参赛费100刀)。看似是国际性的比赛,实际90%的参赛者来自中国,在中国的存在感远强于其它任何国家。S参赛即可获得,但教务处只奖励H奖以上的奖项,约占参赛总人数的50%,需要自己向院系科创负责人申报。

华东杯大学生数学建模邀请赛,是复旦大学数学科学学院举办的比赛,看似等级很低,但是教务处将之列为省部级比赛。获奖率贼低,如果不是实力无敌,确有血本无归的风险。

校赛和校热身赛,获奖率也特别低。举办时间不定期,甚至出结果的时间也完全看心情,不知之后会不会常态化举办。

国赛获奖,甚至应届毕业生落户上海都有加分,所以甚至有人在知乎上找我,说什么两万求省一……

两万求省一

我曾说过“比赛前不需要准备”,因为在我看来,这一比赛对能力的考查,远大于对知识的考查。比赛中碰到自己熟悉的题目背景的可能性几乎没有,所以掌握资料搜集能力、文献阅读能力(尤其是英文文献)和自学能力,是非常必要的。同时,用数学思维分析问题的能力,用编程解决问题的能力,以及撰写论文的能力,也是必不可少的。

是的,这些能力合起来,不就是科研能力(特别是我这个领域的科研能力)?这就是我在经过大三一年的科研训练后,在大四一开始拿到国一的原因。科研对这些能力的提升是巨大的。关于我的科研经历,另外发文叙述。

不过我想来,最重要的可能还是编程能力。在国赛题目越来越注重编程的情况下,别的能力或许都能边参赛便提高,但三天速成编程应该是不可能事件……

参赛历程

下面转载一下我去年写的参赛历程,首发于知乎:

拿到题后,根据去年的经验,很快决定做B题。一般来说,A题有固定答案,看上去简单实则很难;B题反之。决定做B题后,花了点时间,理清了B题的逻辑。个人感觉这个的模拟,和分子动力学模拟很像,于是提出先写个基于时间步长(timestep)的模拟程序,先用个最简单的策略:谁时间短,即谁最先完成加工,谁就先加工。快马加鞭,当晚便用Python写出了第一版程序,处理第一道工序的问题。

事后才知道,第一晚至少解决了一半的工作。接下来两天,主要在纠结这些事情:

1.有没有更优的策略。首先把只考虑休息的RGV改成考虑所有RGV,效率明显提高。不过我起初以为,这么简单的策略肯定不会是最优策略。后来发现,没有更优秀的策略了……最简单的反而是最好的。查阅了大量中英文文献,表明我们的方法叫动态规划,并且应该没有更优的算法了。知乎某些人说的什么遗传算法没有任何作用……

2.两道工序间怎么传送熟料。是用机械臂还是用传送带呢?题目也没说。第二天写程序的时候一直在纠结这个,最后决定两种程序都写一遍,哪个效率高就用哪个。

3.两道工序的刀具怎么选呢?本来想多试几个,后来想到可以全试一遍,一个for循环就解决了……

4.那个发生故障的概率怎么理解?题目也没说。最后决定我们自己来定义……

5.bugfix,直到确定程序和数据没有任何问题

最后一天全面进入写论文阶段。说起来我们的思想其实相当简单,所以调度策略其实没多少可写的,一句话能讲明白的调度策略硬是被队友写了好几页……模拟思路可写的倒是很多,也写了很多……最后感觉还差几页,就用visio画了张流程图,用python画了几张甘特图,凑凑页数。

下午五点,提前三小时提交,然后就回去休息了。所有内容,包括论文、数据、代码和图片,都已放在GitHub上

当时感觉状态十分良好,我们四天来既没有熬夜也没翘课,还是做得很顺利,毕竟我们的数据摆在那里(并且是用程序自动生成的)。当时的感觉是,至少比去年的奖项要高一点。

10月8日被通知入围答辩,发现大家都是用这种最简单的调度策略emmmmmm,但是我们的数据是最高的,除了因为没有像某些组死抠题目外,另一个原因就是考虑了刀片问题。于是我跟我室友说“这是我三年来离国一最近的一次了”。

和室友的对话

第二天答辩后感觉仍然良好,心里隐隐有一种对国一的期待,不过还是谦虚地跟队友说国二肯定稳了……我们学校国一每队奖5000,国二每队奖3000。于是我们开始考虑奖金怎么花……

结果出来,果然就国一了。还意外地获得了应届生就业落户上海的10分加分,大概就能到达落户的标准线了(虽然我显然并不打算本科毕业后就就业……)。

下期预告

下一期将讲一讲数学竞赛的参赛经历,说起来也没什么技巧可以分享,因为是裸考……

前天,我介绍了学科竞赛的概况。今天我来讲解一下计算机应用竞赛,该类比赛采用“校级-省级-国家级”三级体系:

  • 校级:华东师范大学本科生计算机应用能力大赛,教务处和计算中心主办

  • 省级:上海市大学生计算机应用能力大赛,市教委主办

  • 国家级:中国大学生计算机设计大赛,教育部大学计算机课程教学指导委员会主办

校赛有一点点奖金,省级和国家级比赛均在学校竞赛名单内。国家级比赛已纳入全国普通高校学科竞赛排行榜,该排行榜中,华东师范大学排名全国第83名。

每年10月,学校会发布校赛和上海赛的竞赛通知,12月前同时报名校赛和上海赛,并提交比赛作品,计算中心根据作品情况,决定是否同意报名上海赛。次年3月,重新提交校赛和上海赛的最终作品。之后,校赛和上海赛分别进行初赛和复赛,初赛只审阅参赛文档,决定复赛的参与资格,淘汰约1/3的作品;复赛为现场答辩演示,并根据复赛答辩情况决定获奖情况。校赛的获奖名额较少,进入复赛后仍有可能不获奖;上海赛的获奖名额较多,不过仍有优胜奖(安慰奖),但一等奖的名额较少。上海赛入围复赛,则有资格于5月报名国家赛,但每一类作品每个学校也有名额限制,一般会根据上海赛的结果由高到低排序。国赛的初审一般只审核是否抄袭、是否一稿多投参加多个竞赛,不会淘汰作品;至7月-8月现场答辩后颁奖,三等奖保底,一等奖仍较难获得。

值得注意的是,校级、省级、国家级三个赛事的获奖档次彼此独立,没有任何关系,只需注意参加国赛必须上海赛入围决赛。以我为例,大一时校、省、国分别获三等奖、三等奖、二等奖;大二时分别获一等奖、二等奖、二等奖;大三时校赛获三等奖,上海赛却未入围;今年校赛未入围,上海赛却获得了一等奖,正准备参加国赛。可见不同评委的喜好完全不一样,想在所有比赛中获得高等级奖项其实也是一件比较玄学的事情。

校赛省级国家级
2016三等奖三等奖二等奖
2017一等奖二等奖二等奖
2018三等奖未入围复赛无资格
2019未入围复赛一等奖报名中

系列赛事的报名费和交通费全部由学校承担,上海赛时会包车集体前往答辩地点。

下面说说个人的体会和感悟。

作品的技术含量当然是重要指标,只需达到“及格线”即可,但决定奖项的、评委最看重的,还是作品的应用和设计。大一、大二时,我开发的化学e+完全来自于我的脑洞,虽然小程序版本的使用人数已达2万人,但应用性其实欠佳,换句话说就是“这个作品我认为有诸多应用,但也只是说说而已”。我观察到,参加比赛的大部分作品都是如此。今年,我拿着科研工作的副产品参赛,一举获得上海市一等奖,仿佛打开了新大陆。科研,不就是计算机最好的应用吗?这也使我们成为学校第一支指导老师和参赛队员完全来自化学与分子工程学院的队伍。关于我这两年的科研经历,我将另开文章回忆,本文不再赘述。

ReacNetGen

评委能够接触到的,包括作品本身、作品文档、作品视频、答辩演示文档。切忌只专注于作品本身,这是参赛新手常犯的错误。事实上,作品的辅助说明材料也非常重要,甚至可以给评委老师留下第一印象。作品完成后,可以委托校科技处申请软件著作权证书,学校报销申请证书的全部费用,当然知识产权也归属学校,之后便可以在答辩时或文档中进行说明。

这一比赛无疑提升了我的编程的能力。我大三大四进行科学研究的编程基础,很大程度上就是因为我大一大二时参加计算机比赛时,花费了大量时间进行编程。事实上,编程和应试能力一样,也是一项“熟练型”技能,水平与练习时间绝对为正关系。因此,这一比赛绝对使我收益终身。

不过,自从我上周拿到上海市一等奖后,我就有了更大胆的想法:如果大一时就开始进行开发软件的科研工作,不久可以同时在科研和竞赛上取得成功,既发了文章又拿了奖项?这里就必须打个广告了:我们课题组持续招人中,详情可点击阅读原文查看(学校封网期间请打开VPN)。

从上面的表格可以看出,这一类比赛中,我几乎已经拿过校级和省级的一等奖,只差一个国家一等奖。今年7月,我毕业一个月后,我将继续参加国家级的比赛,希望能用国家一等奖为四年的学科竞赛生涯画上句号。

下一篇文章,我将详细介绍数学建模竞赛,这也是我去年拿到了国家一等奖的一类竞赛。

今天起,开始回忆大学时光。这几天,我将先从学科竞赛“开刀”,简要介绍我获得过奖项的学科竞赛,并分享一些参赛经验。我将我获得过的奖项分为以下几类:

  • 计算机应用竞赛8项(含省一和两次国二)
  • 数学建模竞赛3项(含国一)以及2项学校已不承认的S奖
  • 数学竞赛2项(含国三)
  • 三创杯1项(校级二等奖)
  • 大夏杯2项(校级)
  • 未列入学校名单的比赛1项

对于我参加过却没有获得奖项的比赛,我已经默认这些比赛对于化学专业的学生来说,获奖难度极高,因此不予列出。而对于我获过奖的比赛来说,我认为获奖对化学专业的学生来说是高度可行的,将在今后几天详细介绍。

今天,我先简要概述一下参加学科竞赛的四点益处,既有非功利性的,也有功利性的。我认为,以功利性的心态参加学科竞赛,对于就业和升学压力特别大、时间特别特别宝贵的化学专业本科生来说,也是无可厚非的。

第一点先说非功利性的目的吧,就是丰富大学生活,同时提升综合素质,丰富视野。大学只是学习吗?只是科研吗?只是竞赛吗?只是学生工作吗?只是各种活动吗?只是吃喝玩乐吗?当然不是。学习和科研固然是主线,但大学生活应该是各项内容的有机结合,学科竞赛也是重要组成部分。同时,学科竞赛可以提升创新和实践能力,领略到其它学科的精彩之处,这些都是毋庸置疑的。这也是我参加学科竞赛的初心,到了现在仍在报名学科竞赛的原因。

第二,学科竞赛可以获得一坨奖状,丰富简历,这算是功利性的一点。下图展示了我申请市优秀毕业生,以及校优秀团干部标兵时,答辩ppt的其中一页,各种奖状一堆,的确很有渲染力。同时,我申请学校时也挑选了几个国家级的奖项写在CV上,虽然国外估计不可能听说过这些奖项,但是必然比什么奖项都没有强。申请各种奖项需要附简历时,也可以罗列出来。事实上,学校也喜欢每年罗列获奖名单,来展现学校人才培养方面的成功。

ppt罗列奖项

第三,学校的奖励。上文提及的学校名单,全称《华东师范大学本科生重要学科竞赛和学术活动名单》,每年由教务处发布,包括若干省级及以上竞赛的名单和推荐指数。对于名单内的奖项,学校一般会报销报名费,如比赛在上海会提供校车,比赛在外地则可以报销交通费和住宿费,并按标准提供差旅津贴。如果获奖,则会按照《本科生学科竞赛管理办法》(华师教(2006)88号)提供奖励:国一5000元,国二2500元,国三和省一1200元,省二600元,省三300元。一般来说,教务处会在每年12月统计获奖名单,次年6月发放奖金。不过,这个2006年的奖励标准,在13年的物价上涨后,已经显得不是很多了,今年起可能还要缴税,不知道学校什么时候能够提一提奖励标准……另外,如果有幸获得国家一等奖,可以在次年1月教务处主办的本科教学表彰大会上获得和校长或党委书记的握手机会:

本科教学表彰大会

对于校级学科竞赛,一般是教务处主办或共同主办的,一些比赛是有奖金的,但与省级以上的奖金统一发放不同,校级比赛的奖金一般由主办方单独发放。

第四,学院的奖励。现在学院推免和奖学金评比时,学科竞赛仍会加分。只是分数逐年减少,同时学院也没有任何指引、鼓励学生参赛的意思,有一种“学生参加学科竞赛,学院并无任何好处”的感觉。事实上,学院理应是本科生参加学科竞赛的指引者和推动力,希望学校今后能够给学院适当的资源倾斜,鼓励学院引导本科生参加各类学科竞赛。

为了测试学校VPN的速度,本文中用Speedtest对比了不连接VPN、连接电信网节点和连接教育网节点的速度。为了控制变量,测试服务器均采用中国联通的上海节点(Shanghai Branch, China Unicom,ID:5083)。
不连接VPN时的速度
不连接VPN时的速度

电信网节点
电信网节点

教育网节点
教育网节点

可以看出,使用VPN时的网速明显慢于不使用VPN时的速度。由于不连接VPN时网速正常,可以排除是笔者手机、宽带或者测速服务器的问题,可以断言,就是学校的VPN问题。
由于目前是深更半夜,因此可以排除是用的人太多导致的,学校线路也不会只有区区20Mbps的带宽。
学校的进出口是否本身就限速?我们使用笔者使用的一台位于学校的电脑进行探究。我们安装了speedtest-cli进行测速:

1
2
pip install speedtest-cli
speedtest-cli --server 5083

测速结果,下载速度93.59Mbps
测速结果,下载速度93.59Mbps

我们仍然使用5083服务器进行测速,下载速度可达93.59Mbps,是VPN的20Mbps的近五倍。因学校目前并未部署千兆网络,这确实是峰值网速,可见学校网络进出并未限速。

现在,我们可以断言,学校VPN确实进行了限速。