Repository navigation
Expand file tree
/
Copy pathprojects.html
More file actions
150 lines (131 loc) · 8.27 KB
/
Copy pathprojects.html
File metadata and controls
150 lines (131 loc) · 8.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="author" content="Eric Ding">
<meta name="description" content="It's Ding Ding's personal projects" />
<meta name="viewport" content="width=device-width">
<link href="styles/style-common.css" rel="stylesheet" />
<script src="scripts/common.js" defer></script>
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" />
<title>My projects</title>
</head>
<body>
<label for="theme">Select theme: </label>
<select id="theme">
<option value="black">Black</option>
<option value="white">White</option>
</select>
<header>
<h1>My Projects</h1>
</header>
<main>
<div class="flex-text">
<p>
The design and implementation of an <strong>out-of-order N-way superscalar
processor</strong>: The processor adopts the R10k style register renaming scheme, and supports 32-bit RISC-V ISA.
Its features include a load/store queue with internal data forwarding,
tournament branch predictor, memory prefetcher, and non-blocking set-associative data and instruction cache.
</p>
<p><a class="para" href="file/EECS470_Report.pdf"> [doc] </a><a class="para" href="https://github.com/EricDinging/out-of-order-processor"> [code] </a></p>
</div>
<div class="flex-image">
<img src="images/cpu.png" alt="Out-of-order CPU" style="width:50%;"/>
</div>
<div class="flex-text">
<p>
<strong>Propius</strong> is a federated learning (FL) resource management system, employing a microservice architecture based on gRPC protocol and Redis database. The system provides a clean abstraction on top of the device-level heterogeneity over the network, and supports various scheduling policies for different objectives. Venn, an advanced scheduling policy for FL job completion time (JCT) optimization, is deployed in Propius.
</p>
<p><a class="para" href="https://arxiv.org/pdf/2510.19617"> [doc] </a><a class="para" href="https://github.com/EricDinging/Propius"> [code] </a></p>
</div>
<div class="flex-image">
<img src="images/propius.png" alt="Propius" style="width:50%;"/>
</div>
<div class="flex-text">
<p>
<strong>Venn</strong> is an FL scheduler that efficiently schedules ephemeral, heterogeneous devices among many FL jobs, with the goal of reducing their average job completion time (JCT). Venn proposes a contention-aware scheduling heuristic to minimize the average scheduling delay, and a resource-aware device-to-job matching heuristic that focuses on optimizing response collection time by mitigating stragglers. Our evaluation shows that, compared to the state-of-the-art FL schedulers, Venn improves the average JCT by up to 1.88X.
</p>
<p><a href=https://arxiv.org/abs/2312.08298 class="para">[arXiv:2312.08298]</a></p>
</div>
<div class="flex-image">
<img src="images/venn.png" alt="Venn" style="width:50%;"/>
</div>
<div class="flex-text">
<p>
<strong>WASP:</strong> Wearable Analytical Skin Probe, is a wearable closed-chamber hygrometer-based device. WASP uses an in-house communication protocol that operates atop I2C and Bluetooth Low Energy protocols. This protocol enables fast and reliable wireless communication between microcontrollers, ensuring high-fidelity data collection. WASP has been successfully deployed in experimental setups, measuring insensible sweating (TEWL) for early disease detection.
</p>
<p><a href=https://pubs.acs.org/doi/10.1021/acssensors.3c01936 class="para">[paper]</a></p>
</div>
<div class="flex-image">
<img src="images/wasp.png" alt="WASP" style="width:50%; "/>
</div>
<h2>Light Strider, July 2021</h2>
<p>
This is a team project, a web game written in ELM. You are going to direct light beams through obstacles, using mirrors and light splitters. This game uses randomness and graph algorithms extensively. Try it. It's fun!
</p>
<a href="https://tic-top.github.io/light_strider/"> Light Strider </a>
</p>
<p>
<a href="https://github.com/tic-top/light_strider"> Project repo </a>
</p>
<img src="images/light_strider.png" alt="Light Strider" />
<h2>China May Day Mathematical Contest in Modeling Project, May 2022</h2>
<p>
I led a team to build a gray comprehensive evaluation model and a neural network prediction model with Softmax classifier in Python and Matlab, based on a dataset of a city’s fire alarm systems (various sensors’ false alarm rates). We evaluated fire alarm systems of different districts in the city, and predicted the credibility of fire alarm signals. Our paper won the first prize of 2022 China May Day Mathematical Contest in Modeling.
</p>
<p>
<a href="https://github.com/EricDinging/5.1Math-Modeling"> Project repo </a>
</p>
<h2> Class Projects </h2>
<dl>
<dt><strong>Tennis Ball Collector, Umich EECS373 Embedded System Design, April 2023</strong></dt>
<dd>
<p>
This is a four-people class project. We designed an automated robot for tennis ball collection. We went through rigorous design and testing phases, and made a robust, fully-functioning product. In this project, I was mainly responsible for system design and integration. I designed and implemented the finite state machine, specifically state encoding, state transitions based on external input (buttons and sensors) and overall flow of code. I wrote motor control driver, and worked on the H-bridge connection. I also implemented interrupt, timer capture and compare function for IR sensor, ultrasonic sensor and motor control.
</p>
<p>
<a href="https://github.com/EricDinging/EECS373-DASA"> Project repo </a>
</p>
<img src="images/robot.jpg" alt="Tennis Ball Collector" />
</dd>
<dt><strong>Multi-threaded programming, Umich EECS482, Feburary 2023</strong>
<dd>
I implemented a CPU scheduler based on shortest-seek-time-first (SSTF) scheduling policy in C++. This multithreaded project was implemented using monitors.
</dd>
<dt><strong>Thread library, Umich EECS482, Feburary 2023</strong></dt>
<dd>
I implemented library functions in C++ for multithreaded program like thread monitors (mutex, conditional variable), thread yield, and thread interrupt.
</dd>
<dt><strong>External pager, Umich EECS482, March 2023</strong></dt>
<dd>
I implemented a pager which manages virtual memory for application processes in C++. The pager could handle address space creation, read and write faults, address space destruction, and simple argument passing between address spaces.
</dd>
<dt><strong>Network file server, Umich EECS482, April 2023</strong></dt>
<dd>
I implemented a multi-threaded, secure network file server in C++ based on unix file system structure and socket programming and client-server system primitives.
</dd>
<dt><strong>Rescue the Countess, Umich EECS281 Data Structures and Algorithm, Sep 2022</strong></dt>
<dd>
I implemented Depth First Search and Breadth First Search algorithms to guide Marco of the Fungus Province, helping him rescue Countess Cherry captive in a dark, maze-like castle, using C++.
</dd>
<dt><strong>The Walking Deadline, Umich EECS281 Data Structures and Algorithm, Oct 2022</strong></dt>
<dd>
I implemented a zoombie shooting game based on a Priority Queue container, using C++.
</dd>
<dt><strong>SillyQL, Umich EECS281 Data Structures and Algorithm, Nov 2022</strong></dt>
<dd>
I wrote a C++ program to simulate a basic relational database with an interface based on a subset of a standard query language in C++, using Hash Table and Binary Search Tree.
</dd>
<dt><strong>among-us, Umich EECS281 Data Structures and Algorithm, Dec 2022</strong></dt>
<dd>
I implemented a C++ program to calculate a Minimum Spanning Tree using Prim algorithm, approximate a solution to the Travelling Salesperson Problem using heuristics, and calculate an optimal solution to the problem using a branch and bound algorithm.
</dd>
</dl>
<p>
<a href="#top"> Back to top</a>
<br>
<a href="index.html"> Back to main page</a>
</p>
</main>
</body>
</html>