前言
由于加入了超算实验室,又开启了新的考核hhh,宇宙尽头还是考核。虽然做的东西,跟大一做的不大相同,但是还是会努力滴。还是在这以博客的形式记录并且分享一下我的学习过程啦。
文章目录
1. 配置ubuntu虚拟机
之前有配置过,但是开的内存太小了,装不了oneapi,就删了重新装了一个
2. 安装oneapi
3. hpc
这个配置文件整了挺久的,大致就是修改三个东西,其中TOPdir
这个配置项改成hpl的文件夹地址
ARCH = test
TOPdir = /home/cgy/hpl-2.3
OMP_DEFS = -qopenmp
4. hpcg
TOPdir = /Home/cgy/hpcg
MPdir =/opt/intel/oneapi/mpi/2021.2.0
CXX = /opt/intel/oneapi/mpi/2021.2.0/bin/mpiicpc
CXXFLAGS = $(HPCG_DEFS) -O3 -qopenmp -mavx
最开始,啥东西都没输出,我还以为没有装好,整了好几次,结果问了下qc学长,发现其实运行信息打印在了文件里555。
5. C/CPP
编译指令
gcc/g++
- -o
- -E
- -S
- -c
- -O
gcc f.c -o f
:将源文件预处理、汇编,编译,链接形成可执行文件
gcc -E f.c -o f.i
:将源文件预处理输出.i
文件
gcc -S f.i
:将预处理的.i
文件汇编成f.s
文件
gcc -c f.s
:将汇编输出的f.s
文件编译输出f.o
文件
gcc f.o -o f
:将编译输出文件f.o
文件链接成最终的可执行文件f
gcc -O1 f.c -o f
:使用编译优化级别1编译程序,级别为1-3,级别越高优化效果越好,但是编译时间越长
6. shell
字符串处理
echo ${#name}
echo ${name:0:2}
判断
if
if [ $a -gt $b ]
then
echo "a > b"
elif [ $a -lt $b ]
then
echo "a < b"
elif [ $a -eq $b ]
then
echo "a = b"
else
echo "bu ji dao"
fi
case
read var
case $var in
[a-z]|[A-Z])
echo "char"
;;
*)
echo "string"
echo "var: $var"
;;
esac
循环
for-in
for lang in java go python js html css
do
echo $lang
done
# 可嵌套
for lang in java go python js html css
do
for peo in cgy cgyy cgyyy
do
echo "$peo can use $lang"
done
done
for i in {1..9}
do
for j in {1..9}
do
echo -n "$j*$i=$(($j*$i)) "
if [ $i == $j ]
then
echo ''
break
fi
done
done
while
i=1
while (($i<5))
do
echo $i
let "i+=1"
done
num=$RANDOM
while read -p "input: " var
do
if [ $var == "clear" ]
then
clear
elif [ $var -eq $num ]
then
break
elif [ $var -lt $num ]
then
echo "litter"
elif [ $var -gt $num ]
then
echo "greater"
fi
done
函数
$#:参数个数
$*:所有参数
$1:第一个参数
$2:第二个参数
f () {
i=1
echo "args_count: $#"
for arg in $*
do
echo "arg$i: $arg"
let "i++"
done
}
f cgy cgyy
7. docker
然后在云服务器上,也拉了个2048来玩,玩的还不错嘿嘿
8. git
之前有学习过一些,也有把基本指令记下来。链接
9. openmp
看了一些基础操作,代码放在github上,链接