My introspect from food for thought by mentors

I inspect the the major quality first I met those who have great progress in their Ph.D. period and in their tenure track is the persistent energy. They seems to have endless insights and devotion to one specific idea and broad idea through the thorough world. That accounts for the philosophy of the point and the plane. Like the round pegs in the square holes, we never shows satisfaction with the current worlds' poor knowledge over no matter an engineering problem or a mathematical problem.
Continue reading "My introspect from food for thought by mentors"

riscv 白嫖大会最后一天

RISCV 中国峰会6.26

Chisel 余子豪

https://www.asplos.dev/2021/06/27/xuzihao1/image-2021062610434998

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626105608506https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626105612051

Chisel tutorial BCD

板级驱动https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626111557500

chisel ALU

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626111849411

MLIR层次结构

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626110948071

  1. 高层IR向量化
    1. 标量循环的向量化
      1. 对高层Ops 使用向量化Pass重写
      2. 多个Dialects 实现向量化 Affine+Vec+Standard
        1. 针对性
        2. 可重用性
      3. e.g. conv-opt 7x7 kernel is the best
      4. Process
        1. CibvertVectorToLLVM instantilize
        2. x86vector dialect mlir -{抽象层次高,语义贴近Intrinsic+LLVM dialects=LLVM IR
        3. e.g.
  2. MLIR 使用Intrinsic,可针对性的进行dialect 定义

buddy-mlir

Sihao Liu

可重构计算 - 用chisel构建 tweaked DSL based on C

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626111950497

The overlay generation: workloads MachSu.

The circuit and Rocket Core mapped onto Kernel vector

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626112707604

DSOGEN Process on Hardware Side

从硬件上完成Hardwareside 的compiler

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626112843516

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626112903017

Control flow implementation

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626113047108

Better tahn AutoDSE of HLS

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626113120609

current Vitus 设计空间探索。

图计算加速

PolyGen FPGAF1

Chisel of 香山

高性能

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626113608319

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626113624678

Poly graph

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626113744866

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626113832425

https://asplos.dev/wordpress/wp-content/uploads/2021/06/27/xuzihao1/image-20210626113903669

Sequencer

一个中国chisel 之父,但对人真的很好。

PLCT $ Shanghai

gnu test 的优点

Gentoo 发行版的发布

秘猿科技

Fuzzing

自动化测试
libfuzzer

CKB-VM
密码学xdwrite

wsam

一维流式结构
riscv
树状结构

riscv+gas 模型
内存延时初始化

密码学算法 K extension

ISC 21回顾

实名羡慕过往的同学能去德国🇩🇪,我已经long long time 没有行万里路了,可影响我们在线上给予对宝座一定的冲击。

The HPC competition is all about hacking. Just like Neo (The hacker) dodging the bullets.

对于国内,德国,以及美国的比赛,我大致了解了三个区域对科研的态度。国内的情况之前已经描述过了,鉴于最近参加的ASSIST上科大选角大赛储存分场,我觉得中国真正做事的科研人员是承包国家项目的,其实强如陆游游也是如此,不过没有工业界做上层建筑,真的做出来的 filesys 都是玩具。德国这20天左右的调试和report,code challenge的代码质量简直💩。由此我觉得科研实习及学习还是得去万物之源——美国。年底的SC21进决赛了,我也在培养下一任队长了。(ASC22加油。

  • 性能测试
    • HPCC (10 pts)移植GPU
    • HPCG (10 pts)
    • HPL (10 pts,单独评奖)
  • 传统 HPC 题
    • gpaw (分子模拟,10pts)
    • MetaHipMer 2 (宏基因组测序,10pts)
    • WRF(气象推断,10pts)
    • lammps(蛋白质模拟,10pts)
  • Code Challenge (10pts)
    • 对 wrf 和 gpaw 的 mpi_alltoallv 推断前端、以及(,10pts)

现场面试(10pts)

超算介绍

在刚开始拿到机器的时候我想笑,因为Niagara(在加拿大🇨🇦多伦多大学,意思是那个落差最大的瀑布)的配置和我在jump面试维护的几乎一样,从文件系统到scheduler。大概大前年我们ASC拿第二名是因为对两倍数据集的使用。还有当时志强对那个训练模型的熟悉,这次运气大致也到了我们上面。Niagara 登陆节点7个skx, CentOS7, Intel(R) Xeon(R) Gold 5115 CPU @ 2.40GHz,全是100GBps的IB卡,debug节点可以申1小时,和登陆节点配置是Intel(R) Xeon(R) Gold 6248 CPU @ 2.50GHz,compute节点在nia1000左右可能可以申请到cascade lake。(所谓无痛提升性能。) 文件系统是gpfs和module放的用户态cvmfs。NSCC(National SuperComputing Centre)是新加坡大学联盟+ASTAR研究所的超算集群,就比较寒酸了,4个被很多人拷文件的登陆节点broadwell 2690-v3,CentOS6,IB卡是100Bps,主要是为了文件系统。但由于我我有NUS的好朋友(前同事)拿到了他的回校工具,这样我们就无痛多了4个登陆节点,但是交的队列是一样的。normal队列和登陆节点一样,而dgx是假的dgx,是16G的显存不说,nvlink也无。不过CPU稍稍好一点点,v3变v4。内卷之坡县尽如此,都不如我校校内的机器,终于知道我前老板为什么要回上海了。

还有说一下pbs和slurm,讲真,前者一点也不安全,其实就是一个后台程序在维护一套bash脚本,勉强维护住了,不过后者有商业版可以买,也做了很多cgroup的隔离,可sg机器上并没有,所以稍稍hack一下可以运行的时间还是可以的。同时也可以qsub -I一个交互干任何你想干的东西,(注意ip地址是ib卡的,qsub控制都是板载千兆口。)而在Niagara所有的openrun 和资源都是被控制住的。在进入的时候,ib卡就不能用于mpirun的host,这一点非常坑。

两个超算集群都有很好的GPFS,但是NSCC的scratch没有flock,导致不能用spack.总之POSIX是个对读写都需要加🔒的协议,GPFS并没有做到这一点。

Benchmark

HPL

虽然每次都觉着这是跑分,可这次真不一样。我们本来以为这是dgx就可以靠nvlink 这个topology搞点事情。可惜只能搞CPU的affinity了,我们用taskset 搞了这个😄。

虽然性能提升是个玄学,不过有总比没好。

HPCG

这次还需要在cpu上跑,从官网上搞了个xhpcg_skx,没想到在tuning的时候到了cascadelake,后来我们每次跑都指定那个节点。

HPCC

以前比赛从来没有过这么老的东西去跑benchmark,这是一个最后commit 13年的东西,有HPL,FFT等7个小case,主流benchmark都不用这玩意了,可能欧洲人比较念旧吧。我们调了一版本CuBLAS编译的HPL和CuFFT变异的FFTW。性能是直线上升。

MHM2

我们拿到这个题目的时候,觉得这个赛题我们可以改很多,我还为此分配了两个同学去研读代码,不过松辉和候补同学拿这个项目直接成了他们的并行计算project可还行。可我忘了作者,LBLL,berkeley 和能源部的大神写的,怎么可能会需要我们去魔改他的代码。失策失策。论文里的种种,cuckoo hashing,k-mer,DHT,都是貌似可以改的东西。可惜他们已经survive了TB级别ACGT的测试,工程师已经写的够充分了。不过upcxx(一个并行编程范式)有挺多小问题的。当时并行计算并没有涉及到GASNET并行模型,其实就是global_ptrlocal_ptr的那些东西,这个并行模型比较适合DHT,特别是TB级别的数据。

我们最先发现的是RPC他写的很慢,profiling完以后的结果告诉我中间传输过程太多,可没啥可以改代码的,都是libverbs点对点通信。

作为尝试,我们尝试了upcxx 的后端,可以是libverbs 也可是Intel MPI,Niagara上面装的rdma-core是rpm装的而非mellanoax下下来编译的,这弄坏了挺多东西。所以我们关于libverbs都是在singularity里弄的。在configure正常的情况下,MPI和libverbs 性能差不多。在NSCC上,GasNet对内存有异常多的需求。这程序几乎有线性的scability。
\[
\begin{array}{l}
\begin{array}{l}
\text { Comm} & \text{Build } & \text { System CPU } & \text { User CPU } &\text{nodes}
\end{array}\\
\begin{array}{llrlll}
\hline \text { mpi } & \text { Release } & 37.36 & 02: 54.9 & 1: 35: 15 & 4 \\
\hline \text { mpi } & \text { Release } & 60.74 & 01: 37.4 & 1: 19: 27 & 2 \\
\hline \text { ibv } & \text { Release } & 37.27 & 02: 57.3 & 1: 36: 37 & 4 \\
\hline \text { ibv } & \text { Release } & 61.69 & 01: 36.6 & 1: 19: 33 & 2 \\
\text { ibv } & \text { Debug } & 112.3 & 03: 44.6 & 4: 54: 57 & 4 \\
\text { mpi } & \text { Debug } & 134.4 & 06: 11.6 & 5: 57: 13 & 4 \\
\text { mpi } & \text { Release } & 37.79 & 07: 31.1 & 1: 39: 17 & 4 \\
\text { mpi } & \text { Release } & 545.35 & 1: 18: 27 & 18: 15: 26 & 4 \\
\text { mpi } & \text { Release } & 104.88 & 02: 54.6 & 1: 08: 33 & 1
\end{array}
\end{array}
\]

接下来就是调k-mer中的k了,这个非常有用,但是会减少精度。添加一个k就是增加他计算队列的长度,大致比原来的慢\(\frac17\).所以我们干的一件事就是分析精度缺失和k的关系。让其保持在一个合理的范围内。

DHT是并行计算课上讲过的那种,过一段时间会对在圈上的下一个节点加一次update。更新数据的过程是先write only(write barrier),在同时读和写,最后是read only(read barrier)。其bottleneck在于能否利用这个特性让其更快。(然而提出锅的人并咩有解决这个问题。DHT 的优化就是把那个圈变成其他结构,可似乎networkIO已经是bound了,逃。File System 上他们想用raid 去做这件事。

GPAW

我们在这题上失利了,因为code challenge部分有这块的alltoallv的优化,可是只有一个case真正调用了gpaw,做这个的宇昊由于我的编译原理作业没有花太多时间,导致没有发现问题。

这应用换个elpa库就能很快很快。

LAMMPS

对lammp s这么成熟的蛋白质应用来说,我觉得其应该很稳定,可事实并不是这样。我们在当中找到了各种segfault,尤其是intel package,一个intel 架构师写的加速lammps性能的库。

这么一个类,几乎所有的half neighbor 的计算都要用到
同时在跑ipm学到一个奇怪的LD_PRELOAD顺序问题。

WRF(Wolf)

又是一个天气应用,当时我们SC20的失利很大程度上就是那个 fortran 的 segfault 11,之前的解决方案是unlimit -s。据Harry说就是我们踩坑不够多,不停的换小版本编译,如果都不行才说明不是编译器的问题。我们这次在Niagara上是所有小版本都加了,结果还是不行。在比赛结束没几天的时候,在翻阅了WRF的官方部署ppt后,我们发现是一个KMP_STACKSIZE=20480000000的问题(由于intelifort维护的main程序需要对所有进程的状态进行描述,超过4KB就烫烫烫烫了);在Niagara上还有个奇怪的坑,mpi是完全由slurm的srun控制的,你写的mpirun -np 160在集群上也会被换成srun -ntask $SLURM_NTASK -cpus-per-rank $SLURM_CPUS_PER_TASK -bind-by core导致每个node的core并不是你mpirun写的核心,而是你predefined的,这需要你ssh上去,而你也不能开交互spawn mpi task,因为mpirun走不了ib卡。所以在slurm脚本最前面定义一下就好了。这些坑真的只能在文档中体现,后人才不需要重新踩。现在fortran都要出2021了,时代变了,我的jump trading前老板最喜欢的还是F77,泪目。

说下我们做的task和优化:(给我们的testcase居然是上海。)第一个是题目要求的分析MPI和omp的比例对WRF的影响, 其次是AVX512和AVX2的比较。最后是我们加的一个N-N file write middleware。

首先是profiling结果,由于加上vtune以后更容易seg11,就算加了那几个环境变量也一样,那我们就骂intel ifort傻逼好吧。之后虽然有几个小testcase我们成功跑完了一次advisor 和hotspots。这里只放nvsight(闷骚绿)的结果。


大概解释下就是他会把数据向这样切

更少的MPI overhead就会得到最好的性能,所以我们写了一个bayesian 调参机。非常简单,但效果也不错。
image8
在AVX512和AVX2方面,我们发现AVX512有严重的降频。

之后我们加了个殷老师特技FileSys middleware,我也终于搞懂了fuse到底干了啥。so-called. transform N-1 I/O pattern to N-N
while maintaining the file abstraction

Code Challenge

简要来说就是英伟达工程师写了个垃圾go程序,用于前端显示他们内部调benchmark 的过程,尤其是mellanoax的hpcx提供的openmpi的osu,这是一个很吃alltoallv的东西。以及夹带gpr_copy的ompi的性能。总之,在和shenghao和jiajie讨论了一下后,我们一致认为这是坨💩。所以我的策略就是➕zlib和COO sparse matrix,后来他们upstream了。
前端我们改成json的api传输了,这样压力给了前端,不过我们用了蚂蚁的一个前端库,已经用wasm优化的很好了,我们只需要把他的md转成序列化的json。
给你们说一个笑话。

ISC SCC Final




不太正常的总结

感觉这次时间拉的过长,我和做WRF的厶元几乎为此付出了RA工作和后面的几场考试,没事,能work就行。时间长就导致最后大家其实差不多,不知道评奖的机制是什么,至少我从和THU 暨南 NTU SYSU pk的过程中学了很多很多。清华好像最后两天才开始做,我只能说他们可能对评奖并没有什么兴趣了,反正就是第一了,反正年底我们去不了美国了。就面不了基了。

然后又是一年奇怪的陪跑。感觉就是自己太菜了。

Reference

  1. E. Georganas et al., "Extreme Scale De Novo Metagenome Assembly," SC18: International Conference for High Performance Computing, Networking, Storage and Analysis, Dallas, TX, USA, 2018, pp. 122-13
  2. Hofmeyr, S., Egan, R., Georganas, E. et al. Terabase-scale metagenome coassembly with MetaHipMer. Sci Rep 10, 10689 (2020).

Proposal for *A online systematic scheduling algorithm over Distributed IO Systems.*

In the resource allocation problem in the Distributed Systems under the High Performance Computer, we don't really know which device like disk, NIC (network interface) is more likely to be worn, or not currently on duty which may trigger delaying a while to get the data ready. The current solution is random or round robin scheduling algorithm in avoidance of wearing and dynamic routing for fastest speed. We can utilize the data collected to make it automatic.

Matured system administrator may know the pattern of the parameter to tweak like stride on the distributed File Systems, network MTUs for Infiniband card and the route to fetch the data. Currently, eBPF(extended Berkeley Packets Filter) can store those information like the IO latency on the storage node, network latency over the topology into the time series data. We can use these data to predict which topology and stride and other parameter may be the best way to seek data.

The data is online, and the prediction function can be online reinforce learning. Just like k-arm bandit, the reward can be the function of latency gains and device wearing parameter. The update data can be the real time latency for disks and networks. The information that gives to the RL bots can be where the data locate on disks, which data sought more frequently (DBMS query or random small files) and what frequency the disk make fail.

Benchmarks and evaluation can be the statistical gain of our systems latency and the overall disk wearing after the stress tests.

配合某戏精使用的 slurm 踩坑日记

失落的解释

不太理解asc评审人脑回路,同时看尽了一些国内的学术风气,同时联想到自己的GPA,觉得自己快没书读了。

安装

总之用rpmbuild最快。想改就改改 slurm.spec 就行

rpmbuild -ta slurm*.tar.bz2

大概有几个小坑,

  1. hdf5 spec 依赖有点问题,tar -jxvf *, 把configure 部分改成 --with-hdf5=no。
  2. CC 一定是系统gcc
  3. undefined reference to DRL_MIN,源码DRL_MIN换成 2.2250738585072013830902327173324040642192159804623318306e-308。
    装完进 $HOME/rpmbuild/RPMS/x86_64,yum install一下。

总之躲不开的就是看源码

配置

create 个 munged key 放 /etc/munge/munge.key
compute control 节点的 /etc/slurm/slurm.conf 得一样。

ClusterName=epyc
ControlMachine=epyc.node1
ControlAddr=192.168.100.5
SlurmUser=slurm1

MailProg=/bin/mail
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge

StateSaveLocation=/var/spool/slurmctld
SlurmdSpoolDir=/var/spool/slurmd
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
ProctrackType=proctrack/linuxproc
#PluginDir=
#FirstJobId=
ReturnToService=0
# TIMERS
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0
#
# SCHEDULING
SchedulerType=sched/backfill
#SchedulerAuth=
SelectType=select/cons_tres
SelectTypeParameters=CR_Core
#
# LOGGING
SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurmctld.log
SlurmdDebug=3
SlurmdLogFile=/var/log/slurmd.log
JobCompType=jobcomp/none
#JobCompLoc=
#
# ACCOUNTING
#JobAcctGatherType=jobacct_gather/linux
#JobAcctGatherFrequency=30
#
#AccountingStorageType=accounting_storage/slurmdbd
#AccountingStorageHost=
#AccountingStorageLoc=
#AccountingStoragePass=
#AccountingStorageUser=
#
# COMPUTE NODES
NodeName=epyc.node1 NodeAddr=192.168.100.5 CPUs=256 RealMemory=1024 Sockets=2 CoresPerSocket=64 ThreadsPerCore=2 State=IDLE
NodeName=epyc.node2 NodeAddr=192.168.100.6 CPUs=256 RealMemory=1024 Sockets=2 CoresPerSocket=64 ThreadsPerCore=2 State=IDLE
PartitionName=control Nodes=epyc.node1 Default=YES MaxTime=INFINITE State=UP
PartitionName=compute Nodes=epyc.node2 Default=NO MaxTime=INFINITE State=UP

动态关注 /var/log/slurm* 会有各种新发现。
建议不要开 slurmdbd, 因为很难配成功。
C1BE1D3D63A4532E2475F3858FDF3B1E
sacct 不需要这个功能。

一点点关于QoS的尝试--基于 RDMA traffic

slurm 里面有基于负载均衡的QoS控制,而 RDMA traffic 的时序数据很好拿到,那就很好动态调QoS了。

$ sudo opensm -g 0x98039b03009fcfd6 -F /etc/opensm/opensm.conf -B
-------------------------------------------------
OpenSM 5.4.0.MLNX20190422.ed81811
Config file is `/etc/opensm/opensm.conf`:
 Reading Cached Option File: /etc/opensm/opensm.conf
 Loading Cached Option:qos = TRUE
 Loading Changed QoS Cached Option:qos_max_vls = 2
 Loading Changed QoS Cached Option:qos_high_limit = 255
 Loading Changed QoS Cached Option:qos_vlarb_low = 0:64
 Loading Changed QoS Cached Option:qos_vlarb_high = 1:192
 Loading Changed QoS Cached Option:qos_sl2vl = 0,1
 Warning: Cached Option qos_sl2vl: < 16 VLs listed
Command Line Arguments:
 Guid <0x98039b03009fcfd6>
 Daemon mode
 Log File: /var/log/opensm.log

message table affinity

$ numactl --cpunodebind=0 ib_write_bw -d mlx5_0 -i 1 --report_gbits -F --sl=0 -D 10 
---------------------------------------------------------------------------------------
                    RDMA_Write BW Test
 Dual-port       : OFF          Device         : mlx5_0
 Number of qps   : 1            Transport type : IB
 Connection type : RC           Using SRQ      : OFF
 CQ Moderation   : 100
 Mtu             : 4096[B]
 Link type       : IB
 Max inline data : 0[B]
 rdma_cm QPs     : OFF
 Data ex. method : Ethernet
---------------------------------------------------------------------------------------
 local address: LID 0x8f QPN 0xdd16 PSN 0x25f4a4 RKey 0x0e1848 VAddr 0x002b65b2130000
 remote address: LID 0x8d QPN 0x02c6 PSN 0xdb2c00 RKey 0x17d997 VAddr 0x002b8263ed0000
---------------------------------------------------------------------------------------
 #bytes     #iterations BW peak[Gb/sec]    BW average[Gb/sec]   MsgRate[Mpps]
 65536      0           0.000000           0.000000             0.000000 
 ---------------------------------------------------------------------------------------
 ```
 
改affinity

$ numactl --cpunodebind=1 ib_write_bw -d mlx5_0 -i 1 --report_gbits -F --sl=1 -D 10


集成到slurm QoS 控制API中。

### 最后弄个playbook
```yml
---

slurm_upgrade: no
slurm_roles: []
slurm_partitions: []
slurm_nodes: []
slurm_config_dir: "{{ '/etc/slurm' }}"
slurm_configure_munge: yes


slurmd_service_name: slurmd
slurmctld_service_name: slurmctld
slurmdbd_service_name: slurmdbd

__slurm_user_name: "{{ (slurm_user | default({})).name | default('slurm') }}"
__slurm_group_name: "{{ (slurm_user | default({})).group | default(omit) }}"

__slurm_config_default:
  AuthType: auth/munge
  CryptoType: crypto/munge
  SlurmUser: "{{ __slurm_user_name }}"
  ClusterName: cluster
  ProctrackType=proctrack/linuxproc
  # slurmctld options
  SlurmctldPort: 6817
  SlurmctldLogFile: "{{ '/var/log/slurm/slurmctld.log' }}"
  SlurmctldPidFile: >-
    {{
        '/var/run/slurm/slurmctld.pid'
    }}
  StateSaveLocation: >-
    {{
        '/var/lib/slurm/slurmctld' 
    }}
  # slurmd options
  SlurmdPort: 6818
  SlurmdLogFile: "{{ '/var/log/slurm/slurmd.log' }}"
  SlurmdPidFile: {{ '/var/run/slurm/slurmd.pid' }}
  SlurmdSpoolDir: {{'/var/spool/slurm/slurmd'  }}

__slurm_packages:
  client: [slurm, munge]
  slurmctld: [munge, slurm, slurm-slurmctld]
  slurmd: [munge, slurm, slurm-slurmd]
  slurmdbd: [munge, slurm-slurmdbd]

__slurmdbd_config_default:
  AuthType: auth/munge
  DbdPort: 6819
  SlurmUser: "{{ __slurm_user_name }}"
  LogFile: "{{ '/var/log/slurm/slurmdbd.log' }}"

reference

  1. https://lists.schedmd.com/pipermail/slurm-users/2020-April/005199.html
  2. https://hpcadvisorycouncil.atlassian.net/wiki/spaces/HPCWORKS/pages/1177878529/Getting+Started+with+InfiniBand+QoS#Run-RDMA-Traffic

索尔维公司分析

企业基本情况

一家来自比利时的化工企业,目前在第一梯队,仅次于巴斯夫。化工产品遍及几乎所有领域。

企业可持续发展的目标

10月12日,《华尔街日报》首次公布全球可持续管理企业百强榜单,在调研的5,500多家上市公司中索尔维排名位列第52位。2020年初,索尔维正式发布“同一个地球”可持续发展计划,将“可持续发展”作为索尔维活动的核心。“同一个地球”计划在气候、资源和更美好的生活3大关键领域,设定了10项远大目标。为实现这些目标,索尔维承诺重新配置资源以提高投资组合、运营和工作场所的可持续性。

SWOT 分析

企业职责

针对客户提出问题提供解决方案。以自身自主研发实力集解决方案、工程施工、系统调试运维于一体。在承接项目方面也与市政管网合作,为相同行业中的知名企业提供具体项目中的解决方案。在研发方面拥有自主化工研发团队,并通过科技成果转化项目成为产品并销售。

企业产值

受疫情影响,2020年9个月的净销售额为67.51亿欧元,有机下降11.9%,主要是由于航空、汽车、油气和建筑市场的销量下降。第三季度销售额为21.03亿欧元,较2019年第3季度有机下降14.3%,9月份需求有所改善。截至目前,成本节约达到2.6亿欧元,其中1.3亿欧元为结构性节约,第三季度实现节约9000万欧元。9个月的基本EBITDA为14.81亿欧元,较2019年9月有机下降16%。 2020年第三季度EBITDA为4.73亿欧元,与第二季度相比连续增长7.7%,由于成本降低和持续的定价大大抵消了销量的下降,与2019年第三季度相比,下降幅度被控制在17%的有机范围内。EBITDA利润率提高到22.5%,说明了盈利的质量。2020年9M的基本净利润为5.22亿欧元,第三季度为1.76亿欧元。迄今为止,强劲的自由现金流为8.01亿欧元,是上年同期的两倍多,第三季度实现了3.66亿欧元。强劲的业绩表现主要得益于严谨的营运资金管理和价值创造举措,并为债务去杠杆化做出了有利的贡献。将于2021年1月18日派发中期股息每股毛利1.50欧元,与去年持平,反映了2020年产生的高水平自由现金流。

中国部分的销售


中国部分从1980年开始就进入了中国,当时只是相当于办事处,并未开启化学化工产业。至90年代正式进入后,现在中国有香料及功能化学品事业部、复合材料部、消费及工业专用产品化学部、过氧化物事业部、白炭黑事业部、特种化学事业部、特种聚合物事业部以及技术解决方案事业部。

中国政府鼓励和允许外商投资的化工领域进行投资,从事与化工技术及产品有关的研究和开发。中美贸易战开打以来,强制技术转让部分的要求没有以前严格,2020年末签订的中欧贸易协定,中国在对欧洲企业在中国的利益得到保障。外商投资不限于技术转让,同时中国政府的让利显著。

上海研发中心介绍

上海研发中心大致有50人左右,主要从事化学品的小试以及实验室工作,有与华东理工的定向合作。

工作环境

实验室有专门研究如何吸收化学品的吸收剂,同时楼道里通风设施很好。

实验室与产业的商业模式

EP2EL 研究 CO2 减碳技术,同时直接应用于索尔维的厂家。国家会花钱购买相关技术,强制未达标的企业安装相应的技术。如果通过中期试验,可以直接服务于企业的生产。

# 近期成果


由于二氧化碳是碳的来源,它可以被认为是一种有吸引力的化学构件,因为它的成本低,数量多。不幸的是,CO2具有高度的稳定性,其低反应性对开发新的化学反应是一个明显的挑战。特别是,化学工业正在开发捕获、压缩和储存(CCS)CO2的解决方案。据估计,到2050年,通过CCS减少的温室气体(GHG)可能达到1至1.5GT。. 然而,目前仅有总丰度的1‰的CO2被用于化学合成,这主要是由于其化学惰性和CO2捕获和储存的高成本造成的。

二氧化碳具有很大的潜力,可以成为廉价的化学原料,形成还原碳物种作为能源,或通过形成C-C键形成复杂的分子。然而,到目前为止,还没有一种生态高效的工艺可以实现这些目标。这是由于二氧化碳的高稳定性使其活化非常困难。已知的催化剂的选择性或周转率不高,有些甚至需要在产品的加工过程中被破坏。

实验器材:高压旋转盘电化学反应器(HPRDE-100 ,亚盛科技)。
特点:
1。 旋转盘式电化学高压反应器可在超临界CO2下运行。

  1. 批式反应器,用于输入低压气体(如丁二烯),然后加入二氧化碳来调节压力。
  2. 每支注射器或在采样器处对气体和液体进行采样。
  3. 以后可以引入反应物溶液
    包括4个电极位置:既可以使用旋转盘,也可以作为平行标准设置,旋转盘可以改为搅拌器。

    实验室与产业的商业模式
    企业在敛财的过程中散财,同时承担一定的社会责任,实验室没有任何经济产出,但他们相对于学校里的实验室还是优先服务公司相关技术。
    索尔维(张家港)精细化工有限公司介绍
    地理位置分析

    江苏省张家港市位于中国“黄金水道”——长江下游南岸江苏省境内,属苏州市管辖,处于中国沿江及沿海两大经济带的交汇处。张家港地理位置优越,交通四通八达,驱车40分钟可达京沪高铁无锡东站、无锡苏南国际机场;已经开工的沪通铁路建成后,张家港到上海只需要半小时左右;全市拥有63.6公里的长江岸线,建成65个万吨级以上泊位,年吞吐量超过2.2亿吨,开辟国际航线20多条,与60多个国家(地区)的300多个港口开展贸易往来,是长江沿线最大的国际贸易商港,也是世卫组织评定的全球首家国际卫生港口。

不同政府间销售额

由于各国对不同商品有不同政策,同时也有靠近产地或运费等区别。

碳补贴以及碳税

碳补贴不是一种盈利的手段,而是为人类共同目标努力的一种形式。我国制定了三大管理制度,构建了数据报送、注册登记、碳交易、交易结算等四大支撑平台,初步建成了全国市场体系并取得了成效。因此,道路交通行业纳入全国碳交易市场的条件已初步成熟。

中国政府对减碳的需求极大,碳配额的增长仅为每年1.5左右,而中国实际工业产生的碳排放增长量约等于GDP的增幅。中国政府从第三世界国家购买成本为50欧元每公吨CO2当量。索尔维作为有能力技术上减碳的企业,

离市场近与集聚效应

产业集聚效应,各种产业和经济活动在空间上集中产生的经济效果以及吸引经济活动向一定地区靠近的向心力,是导致城市形成和不断扩大的基本因素。

无碳技术研究

索尔维集团推出全新制氢平台,索尔维集团推出了一个全新制氢平台,将该集团的创新型材料和化学溶液相结合,促进新兴氢经济发展。其核心为索尔维膜技术(离子导电聚合物),该技术在制氢过程中至关重要。

通过创建该平台,索尔维加大了对氢能源市场在研发和创新方面的投入。今年起,索尔维研发、工程、销售和市场营销团队将全力投入,共同为未来氢市场创造价值。

凭借其Aquivion品牌膜技术,索尔维计划将氢罐等氢应用和组件推向市场。索尔维首席执行官Ilham Kadri表示:“氢经济目前处于起飞阶段,借助全新产氢平台,我们将与电解槽和燃料电池领域客户一起达成上述目标。绿色氢能源将成为交通工具应用中极具竞争力的低碳解决方案。我很骄傲,索尔维膜技术可以助力绿色出行,并为应对全球气候变化作出贡献。”

参考文献

  1. http://www.mofcom.gov.cn/article/i/jshz/zn/202003/20200302942759.shtml
  2. https://www.e2p2l.com/en/research-activities/co2-valorization/index.html