GithubHelp home page GithubHelp logo

ssk015.github.io's Introduction

Hi there 👋

  • 🔭 An undergraduate student pursuing bachelor's degree in HUST(Huazhong University of Science and Technology), Wuhan, China. Enrolled in 2021, I am expected to graduate in 2025, may be planning to look for CS PHD positions.
  • 🌱 Learning Parallel computing, Disaggregated memory systems, Database systems and other interesting things about Computer Systems.
  • 🤔 Recently learning rust, typescript and some other programming languages.
  • My Skills
  • 👯 My static blog here
  • 📫 How to reach me: Email [email protected] · [email protected] · [email protected]
  • ⚡ Interests: Swimming, Music(e.g. Vocaloid and Chinese Rocks(CuiJian, Zhang Chu..)), Literature and CS-related knowledge. I'm looking forward to work on Computer Systems.
  • 📚 Research Intern: HUST · CGCL · Jan.2023-now. Working on database index.
  • 📚 Research Intern: ICT@CAS · Mar.2024-now.
  • 👯 Collaborate in: HUST · Heptagon · 2022-now. Competing in several HPC-realted competitions(also known as SCC), like ASC.
  • Others: My Github avatar comes from a song titled "Umiyuri Kaiteitan" sang by Hatsune Miku, composed by nbuna.
Top Languages ReadmeCard
Visitors Visitor Count

ssk015.github.io's People

Contributors

ssk015 avatar

Stargazers

 avatar

Watchers

 avatar

ssk015.github.io's Issues

批判《金陵怀古四首》其一

https://ssk015.github.io/pipanjinlinghuaigu/

原诗:

金陵怀古四首(其一)

王安石

霸祖孤身取二江,子孙多以百城降。
豪华尽出成功后,逸乐安知与祸双?
东府旧基留佛刹,后庭余唱落船窗。
黍离麦秀从来事,且置兴亡近酒缸。

认可其进步性:

这首诗首联写旧朝故事:在许多封建朝代的历史上,祖先能够白手起家,建立起霸业;等到王朝末年之时,他们的子孙后代往往在实力仍然雄厚的基础上不战而降了。比较广为人知的例子:孙策、孙坚白手起家,建立东吴;他们的子孙在“千寻铁锁沉江底”后,选择了“一片降帆出石头”。

在颔联中,诗人这样解释这一现象:这是因为在成功取得江山后,**者安于享乐,因为“逸乐”导致了灭亡。这算是一个很经典的观点了,《伶官传序》中也讲这个道理。作者的进步性体现在尾联,他认识到这种王朝更替似乎是不可以避免的,是“从来事”。

但是,对于王朝更替是“从来事”的原因。作者不能正确地分析,他只认为这是**者“逸乐”造成的。体现了王安石的历史局限性。

揭露其局限性:

首先,认为是逸乐本身导致灭亡本身就罔顾历史事实,不是有力的论据。就拿东吴的例子来说:在东汉末年,天下乱成一锅粥,没有强大的**政府。孙坚父子趁虚而入占据江东,逐渐形成割据的势力。这是时也,势也。到了东吴末年,**只剩下晋和东吴两个政权,即使东吴的世家、大臣和皇帝换成孙坚孙策那一批人,也是断不可能在晋朝的攻击下苟活。何况,东吴灭亡前也和晋朝进行了多年的征战,最终才投降灭亡。

更进一步来说,导致灭亡的不是**者的“逸乐”,而是因为被**者与**者的矛盾激化。这才是封建王朝灭亡“从来事”的根本原因。站在支配地位的**阶级索取总是越来越贪得无厌,弱小的**阶级所受压迫越来越深重。最终,弱小的**阶级揭竿而起,**阶级走向灭亡!然而,新的**阶级又出现了,继续贪得无厌地压迫被**阶级。这就是**秦朝以来的封建王朝更替史,亦即一部分“历史爱好者”口中的“历史周期律”。

缓存和内存一致性-序章

https://ssk015.github.io/CacheCoherenceandMemoryConsistency/

TODO:尚未完成,施工中。

这个系列的blog是作者自学缓存一致性和内存一致性模型后对自己理解的总结,相比经典书籍希望能更加容易理解、上手,让读者尽快理解缓存一致性和内存一致性模型的全貌和实现细节。

在第一篇blog(序章)中,我会以更容易理解的方式介绍缓存一致性和内存一致性模型的应用场景、差异,让堵住迅速形成大局观,从而避免读者在看后续内容时需要频繁查找前文,造成”cache miss”。

缓存一致性

缓存一致性,是指在现代CPU的多核架构下,主存和靠近主存的缓(e.g.L3)存由多个CPU的核心共享,而靠近寄存器的缓存(e.g.L1)由单个CPU的核心私有。

搞这种设计是出于性能的考虑,然而,这将会导致一个问题:那就是,不同CPU核心要去内存中取数据时,读取的数据可能不是最新的,这会造成执行结果出错。

缓存一致性就是为了保证CPU多个核心处理数据时,不让程序的运行结果出错。出错是不可容忍的,这和内存一致性有所不同。

用来保证缓存一致性的协议称为MESI协议。这个协议由四个单词组成,MESI分别是这四个单词的首字母。

内存一致性

为啥这两个一致性的英文是不同的呢?

参考:

1.《A Primer on Memory Consistency and Cache Coherence》(Second Edition)

用infiniband提供的ibportstate命令调整ib网卡链路速度 Use command'ibportstate' offered by infiniband to change link speed

https://ssk015.github.io/toolibportstate/

Chinese:
最近遇到一个需要改变rdma网卡最大带宽的需求,有两种办法可以实现:opensm和ibportstate。

最终选择看似简单方便的后者,在实际使用中踩了不少坑。这个工具的本源逻辑有点奇特,而且没有很详细的官方文档。

主要用了以下几个参数:
speed (1/3/7)
espeed (30/31)
width (1/3)
reset

在我的ib网卡 connectx-4上,分别允许2.5,5,10Gps三种速率和1x和4x两种带宽。

需要注意:ibstat观察到的Rate只是一个计算得到的数值,实际上不同的Rate数值可能是使用了不同的传输协议(QDR/FDR/DDR)。

先ibstat查看目前网卡端口情况:

sudo ibportstate query

图待补

当需要改变网卡链路速度时,先要reset。命令格式如下:

sudo ibportstate speed x espeed x width x reset.

再次输入命令:
sudo ibportstate 即可刷新网卡配置

如果此时出现网卡一直处于down & polling 状态的情况:

再次查看ibstat:

配置成功!

大数据分析笔记1-intro

https://ssk015.github.io/dashuju1/

这一系列笔记内容是作者本人在23Spring上华科计算机系的大数据分析课程(大数据专业必修课)时所记录的笔记。该课程fork自Stanford CS246,做了一些课时上的删节和优化。注:从22级开始,该课程很可能采用考试而非考察形式结课,希望本系列笔记的内容有助于你的理解。

TODO:加一些图片。

Click here Slide(pdf)
Introduction
What is Data Mining?
Data Mining ~ Big Data ~ Predictive Analytics ~ Data Science ~ Machine Learning
Data mining = extraction of actionable information from very large datasets.

This class
High dim. data
LSH
Clustering
reduce Dimension
Graph data
Pagerank
Graph Neural Networks
Spam Detection
Infinite data
Filtering data streams
Queries on streams
Machine learning
Decision Trees
Learing Embeddings
Apps
Recommender systems
Duplicate document detection

Mapreduce
: Early distributed Computing Programming Model
implementations: spark, hadoop…
procedure:
Map:output key-value pairs.
Sort and Collect:
sort pairs by key, output key-(list of values) pairs;
Why shuffle?: Avoid some reducers have too much workload.
Reduce output answers

Spark
: Extends Mapreduce
Additions to Mapreduce Model: Fast data sharing:
cache
no disk-stored
Richer functions in map and reduce

Compare Hadoop.Mapreduce and Spark
generally Spark is faster, needing more memory.
Spark is easier to use.
Mapreduce is great for:
sequential data access
large batch jobs(not interactive, real-time)

大数据分析笔记3-聚类

https://ssk015.github.io/dashuju3/

Click here Slide(pdf)

What is Clustering?
That is to say, given a set of points, We can define a concept of distance between these points. Then, we group the points into some number of clusters, which is known as “簇” in Chinese.

distance : mainly Euclidean or Jaccard

Why is Clustering hard?
Too many dimensions: isolated points

Two main methods:
Hierarchical: bottom up and top down
Assign: assign points to a Existing cluster

Hierarchical(between clusters):
note:

represent a cluster.
determine the nearness of clusters.
when to stop merging clusters.
Euclidean case:

centroid(average)
(1) distance of centroids
(2) shortest distance between two clusters

UnEuclidean case:

Approach 1

choose Clustroid(a exisiting point)

maxium/average/square of dis

various distance and cohesion measures
Approach 2

the collection of points.
define inter-cluster distance.
min of two or avg of all pairs.
Approach 3

the collection of points.
define a notion of cohesion, merge similiar unions.
diamter, avg dis, density
3.
design 1: convex clusters
design 2: concentric clusters.

K-Means(Assignment)

definition: a method, not a algorithm.

method: Before convergence(all the points don’t move), assign points and update centroids

select k: try different k, get the value when avg dis to centroid stop changing dramatically.

毛概期末复习

https://ssk015.github.io/maogaireview/

本blog是复习毛概考试的知识点总结。

导论

1、马克思主义**化这一命题的正式提出:

1938 六届六中全会 ***《论新阶段》“没有抽象的mks主义,只有具体的马克思主义”。

2、指出*****是“**化的马克思主义”:
1945 党的七大 刘少奇《关于修改党章的报告》

3、阐释马克思主义**化时代化的重大历史意义:
2021年,十九届六中全会《第三个决议》

4、提出继续推进马克思主义**化时代化的新要求:
2022 二十大

5、马克思主义理论本身发展的内在需求和解决**问题的客观需要:推进马克思主义**化时代化

马克思主义**化的内涵:

三层意思
马克思主义**化时代化新的飞跃的时间:改革开放和社会主义现代化建设时期

一、*****及其历史地位

19世纪20年代的时代主题:战争和革命

*****形成和发展的实践基础:
**共产党领导人民进行革命和建设的成功实践

*****形成发展

*****开始萌芽:新**主义革命基本**的提出:

《**社会各阶级的分析》《湖南农民运动考察报告》

**革命具有决定意义的新起点:
从进攻大城市转为向农村进军。

指出**革命农村包围城市的规律:
《**的红色政权为什么能存在》《井冈山的斗争》《星星之火可以燎原》《反对本本主义》

*****初步形成,指出**革命发展规律:
***提出并深入阐述的农村包围城市,武装夺取政权的**

遵义会议:伟大转折意义
事实上确立***领导地位,开始确定正确路线在党**的领导地位,开始形成第一代领导集体,开启了党自主解决**革命实际问题的新阶段。

科学阐述新**主义革命,历史性飞跃,趋于成熟:
《共产党人发刊词》《**革命和**共产党》《新**主义论》《改造我们的学习》《论联合政府》

标志着*****确立为党必须长期坚持的指导**:1945 七大党章

*****的丰富和发展,关于社会主义革命和社会主义建设的重要**:
《七届**委员会二次全体会议上的报告》《论人民**专政》《论十大关系》《关于正确处理人民内部矛盾的问题》

新**义革命理论:

三大法宝:
统一战线,武装斗争、党的建设

建立共和国,确立社会主义基本制度,建立完整工业体系

**后两种错误倾向

数字逻辑与计算机设计期末复习-数字逻辑部分

https://ssk015.github.io/shuziluojireview/

本blog是复习数字逻辑部分的一些知识,主要包括。请参考华中科技大学组成原理教材-《数字逻辑》,欧阳星明。

数据表示(一)

进制转换

原码补码反码

BCD码等

逻辑代数(二)

各种基本逻辑门运算及其对应的电路logo:

基本定理和规则

逻辑函数的表示方法

真值表

卡诺图

逻辑表达式

逻辑函数表达式的形式与变换

基本形式

标准形式

最小项、最大项定义:

基本形式和标准形式的转换

求标准与或式和标准或与式的方式

逻辑函数化简:

代数化简

卡诺图化简

组合逻辑电路(四)

补充:各种触发器及其基本特征(PPT缺失,见数字逻辑教材第三章)

组合逻辑电路分析

组合逻辑电路设计

险象和竞争问题

同步时序逻辑电路(六)

两种同步时序逻辑电路

同步时序逻辑电路分析

同步时序逻辑电路设计

数据库复习-整体结构

https://ssk015.github.io/DBreview_arch/

本blog内容是在开始复习期末考试前,先整理出要复习的主要内容和知识点。应考华科23Spring 计算机系数据库课程,适用于华科计算机系复习参考。

TODO:完成前半部分内容的摘要整理

1、数据库考试试卷究竟考些什么?

数据建模

涉及底层存储

关系代数

给一个关系代数式子和数据表,要求算结果

给一个需求,要求写关系代数表达式

范式

分析范式类型

分析依赖成立性

事务执行,并发控制

问执行结果

问生成的调度序列

日志恢复

REDO和UNDO队列

数据的变化

ER图设计题

ER图以及各种码

ER图-》关系模型

SQL查询

写查询语句

写查询优化的方式

安全控制策略:整体设计

2、数据库课程到底讲了哪些章节?分别有哪些重要的知识点?

一、绪论

数据库系统概念

!!数据模型!!

!!模式概念!!

Extra:模型和模式

!!DBMS体系结构(特点)!!

二、关系数据库

!!关系相关的各项基本概念!!

!!关系代数!!

各种集合运算、关系运算:5种基本的运算

三、SQL

SQL概述和特点

基本SQL语句

索引结构(B和B+树)以及B+树优化

!!单表查询、多表查询、嵌套查询!!

数据更新、删除等操作

视图操作

四、数据库安全性

基本原理

三类安全性问题

具体安全控制机制

五、数据库完整性

六、关系数据理论(范式等)

七、数据库设计(软件工程相关理论)

八、关系数据库引擎基础(参考CMU)

九、关系查询处理和查询优化

十、数据库恢复技术

十一、并发控制

大数据分析笔记2-LSH

https://ssk015.github.io/dashuju2/

Click here Slide(pdf))

LSH: Locality-Sensitive Hashing
a way to find “similiar” sets.
upside: only a small faction of points are ever examined
downside: exists false negatives

Steps for similiar docs
fisrt. Shingling
Convert a document into a set

  1. hash shingles to a few bytes

  2. Compute Sim(C1, C2)
    How to compute?

Fisrt define the Jaccard Similarity.

JS(not dis) = num of (equal items which not 0) / num of (all items)
dis = 1 - JS.

The smaller the dis, the more similar the two vectors are.
second. Min-hashing
Convert large sets to short signatures, while preserving similarity.

Find a hash function h(x) make that:
if sim(C1, C2) is high, with high prob. h(c1) equal h(C2);

if low, with high prob. h(c1) != h(c2)
The function to our taste is Min-hashing
Then we get signatures.
third. LSH :
Focus on pairs of signatures likely to be from similiar documents
There uses bands and rows to reduce the error.
See the slides page 40.
Use hashing to find candidate pairs of simiarity >= s

亚当斯密哲学经济学**初探

https://ssk015.github.io/adamsmithtutorial/

前言

很久之前就听说过亚当斯密:作为一个经济学家。根据前几天坐动车时看到的一个知乎回答(链接待补)所说,亚当斯密的哲学思考和政治观念也很有趣,是比较早期的阶级史观者。因此,准备开始读一读亚当斯密的著作,了解其上述**。

–笔者于23.7.11深夜。

考虑用双语写作并且发布。

The Theory of Moral Sentiments: A Brief View

Last modified :7.12

ubuntu20.04配置typescript遇到的一个问题以及解决方法

https://ssk015.github.io/problemintypescriptconfig/

这几天心血来潮,想学typescript。先要配它的环境,在我的ubuntu20.04虚拟机上配环境。用apt-get工具分别以-g命令下载nodejs和npm之后,用tsc编译.ts文件时出现以下报错:

xyw@ubuntu:~/Documents/Code/Learning-typescript-from-scratch/src$ tsc hello.ts
/usr/local/lib/node_modules/typescript/lib/tsc.js:93
for (let i = startIndex ?? 0; i < array.length; i++) {
^

SyntaxError: Unexpected token ?
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object. (/usr/local/lib/node_modules/typescript/bin/tsc:2:1)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)

尝试用npm重新安装typescript,出现以下报错:

root@ubuntu:/home/xyw/Documents/Code# npm install -g typescript
[..................] / rollbackFailedOptional: verb npm-session 072b7b0747965df0
[..................] / rollbackFailedOptional: verb npm-session 072b7b0747965df0
/usr/local/bin/tsc -> /usr/local/lib/node_modules/typescript/bin/tsc
/usr/local/bin/tsserver -> /usr/local/lib/node_modules/typescript/bin/tsserver
npm WARN notsup Unsupported engine for [email protected]: wanted: {

王守仁 《泛海》

https://ssk015.github.io/fanhaiwangshouren/?

王守仁 《泛海》

险夷原不滞胸中,
何异浮云过太空?
夜静海涛三万里,
月明飞锡下天风。

那些不足为惧的艰难险阻,又何必常常挂念心中?夜深人静之时,仿佛世界中唯我独在。只觉得豪情万丈,如同乘风飞翔一般。

随想

https://ssk015.github.io/sikao527/

随想
这几天明显有些摆了。虽然感觉有很多需要去做和应该去做的事情,但是似乎都没有做。似乎也不是因为前几周努力过了,而是因为自己变懒了。自己给了自己“这些事过段时间干也行”、“不急”的心理暗示。虽然似乎也没有那么宽松的时间去准备了。

今天也似乎度过了很摆的一天。晚上九点多回到住所,本来也想干很多事,结果就抄了个发展对象材料,然后洗个澡开始玩好几天没怎么玩的星穹铁道,玩到了一点多。不知道怎么回事,这几天都睡的很晚,这不是一个好现象。就连5.26早上有事的前一天周四晚上,也莫名其妙地倒腾到不到一点才入睡。

要说迷茫不迷茫,我也没感到有多迷茫。至少在自己看来,这一年多做出了不少正确的选择,大体上也是在努力的,情绪上也一直处在很积极的状态。

我一直认为能有“闲庭信步”的气度是一件好事。过去我太过心焦,现在又发现自己有些太不上心了。决定在周六周日这两天少玩星穹铁道,去做点该做的事。就这样吧。

有句话说,无数渺小的思考填满了人的一生。以上写下的就是这些渺小的思考。接下来两天打算认真干点活,不再摆烂了,而且一定一定要调整作息。

下周打算开始写学习缓存一致性和内存一致性的博客。一定一定不要再松懈啊。

2023年5月27日深夜1点24分。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.