Skip to content

Commit 7bd4f58

Browse files
authored
Merge pull request #28 from uic-evl/dev-hero
Images for news
2 parents 3e8830c + 227e596 commit 7bd4f58

File tree

2,432 files changed

+16559
-7050
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,432 files changed

+16559
-7050
lines changed

_bibliography/papers-enhanced.bib

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,25 @@
99
% ######### ##### ######### ######
1010
%
1111
%========================================
12+
13+
@article{WaBr2025,
14+
title = {MFNetSim: A Multi-Fidelity Network Simulation Framework for Multi-Traffic Modeling of Dragonfly Systems},
15+
author = {Wang, Xin and Brown, Kevin A. and Ross, Robert B. and Carothers, Christopher D. and Lan, Zhiling},
16+
year = {2025},
17+
month = apr,
18+
journal = {ACM Trans. Model. Comput. Simul.},
19+
publisher = {Association for Computing Machinery},
20+
address = {New York, NY, USA},
21+
doi = {10.1145/3729424},
22+
issn = {1049-3301},
23+
url = {https://doi.org/10.1145/3729424},
24+
note = {Just Accepted},
25+
abstract = {In high-performance computing (HPC), modern supercomputers typically provide exclusive computing resources to user applications. Nevertheless, the interconnect network is a shared resource for both inter-node communication and across-node I/O access, among co-running workloads, leading to inevitable network interference. In this study, we develop MFNetSim, a multi-fidelity modeling framework that enables simulation of multi-traffic simultaneously over the interconnect network, including inter-process communication and I/O traffic. By combining different levels of abstraction, MFNetSim can efficiently co-model the communication and I/O traffic occurring on HPC systems equipped with flash-based storage. We conduct simulation studies of hybrid workloads composed of traditional HPC applications and emerging ML applications on a 1,056-node Dragonfly system with various configurations. Our analysis provides various observations regarding how network interference affects communication and I/O traffic.},
26+
keywords = {Multi-fidelity modeling, Network simulation, Performance analysis, Dragonfly interconnect network},
27+
selected = {true}
28+
}
29+
30+
1231
@article{JyJo25,
1332
title = {Enhancing Consumer Insights through VR Metaphor Elicitation},
1433
author = {Jyothula, Sai Priya and Johnson, Andrew E.},
@@ -50,7 +69,7 @@ @article{WeAtZh25
5069
abstract = {Digital twin models are of high interest to Head and Neck Cancer (HNC) oncologists, who have to navigate a series of complex treatment decisions that weigh the efficacy of tumor control against toxicity and mortality risks. Evaluating individual risk profiles necessitates a deeper understanding of the interplay between different factors such as patient health, spatial tumor location and spread, and risk of subsequent toxicities that can not be adequately captured through simple heuristics. To support clinicians in better understanding tradeoffs when deciding on treatment courses, we developed DITTO, a digital-twin and visual computing system that allows clinicians to analyze detailed risk profiles for each patient, and decide on a treatment plan. DITTO relies on a sequential Deep Reinforcement Learning digital twin (DT) to deliver personalized risk of both long-term and short-term disease outcome and toxicity risk for HNC patients. Based on a participatory collaborative design alongside oncologists, we also implement several visual explainability methods to promote clinical trust and encourage healthy skepticism when using our system. We evaluate the efficacy of DITTO through quantitative evaluation of performance and case studies with qualitative feedback. Finally, we discuss design lessons for developing clinical visual XAI applications for clinical end users.},
5170
keywords = {Digital twins;Visualization;Computational modeling;Data visualization;Data models;Tumors;Chemotherapy},
5271
bibtex_show = {true},
53-
selected = {true}
72+
selected = {false}
5473
}
5574

5675
% Section_2024

_includes/news.liquid

Lines changed: 74 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<table class="table table-sm table-borderless">
1313
{% for item in news %}
1414
<tr>
15-
<th scope="row">{{ item.date | date: "%m/%d/%y" }}</th>
15+
<td style="font-weight: bold;">{{ item.date | date: "%m/%d/%y" }}</td>
1616
<td>
1717
{% assign tt = item.tags %}
1818
{% if tt[0] == "event" %}
@@ -24,6 +24,24 @@
2424
{% else %}
2525
<i class="fa fa-file" style="margin-right: 4px" title="{{tt[0]}}"></i>
2626
{% endif %}
27+
</td>
28+
29+
<td>
30+
{% if item.image %}
31+
{% assign full_url = "https://www.evl.uic.edu/output/originals/" | append: item.image %}
32+
<div style="width: 250px; height:187px;overflow: hidden;">
33+
<a class="news-title" href="{{ item.url | relative_url }}">
34+
<img src="{{ full_url }}" alt="{{ item.title }}" style="width: 100%; height: 100%; object-fit: cover;" />
35+
</a>
36+
</div>
37+
{% else %}
38+
<div style="width: 250px; height:187px;overflow: hidden;">
39+
<img src="{{ 'assets/img/new-logo-small-480.webp' | relative_url }}" alt="{{ item.title }}" style="width: 100%; height: 100%; object-fit: cover;" />
40+
</div>
41+
{% endif %}
42+
</td>
43+
44+
<td>
2745
{% if item.inline %}
2846
{{ item.content | remove: '<p>' | remove: '</p>' | emojify }}
2947
{% else %}
@@ -44,31 +62,39 @@
4462
{% comment %}
4563
No numeric limit passed, so group by year for the news page.
4664
{% endcomment %}
47-
<div id="filter-buttons" class="mb-3">
48-
49-
<button data-tag="all" class="filter-button">
50-
<i class="fa fa-list mr-1"></i> All </button>
51-
<button data-tag="event" class="filter-button">
52-
<i class="fa fa-calendar-days mr-1"></i> Events </button>
53-
<button data-tag="paper" class="filter-button">
54-
<i class="fa fa-file-pdf mr-1"></i> Papers </button>
55-
<button data-tag="research" class="filter-button">
56-
<i class="fa fa-lightbulb mr-1"></i> Research </button>
57-
<button data-tag="art" class="filter-button">
58-
<i class="fa fa-palette mr-1"></i> Art </button>
5965

66+
<div class="row">
67+
68+
<!-- Sticky left menu -->
69+
<div class="col-md-2 d-none d-md-block">
70+
<div class="sticky-top" style="top: 100px;">
71+
<ul class="list-unstyled">
72+
<li><a data-tag="all" class="filter-link news_selected" style="color: var(--global-theme-color);">all</a></li>
73+
<li><a data-tag="event" class="filter-link" style="color: var(--global-theme-color);">events</a></li>
74+
<li><a data-tag="paper" class="filter-link" style="color: var(--global-theme-color);">papers</a></li>
75+
<li><a data-tag="research" class="filter-link" style="color: var(--global-theme-color);">research</a></li>
76+
<li><a data-tag="art" class="filter-link" style="color: var(--global-theme-color);">art</a></li>
77+
</ul>
78+
</div>
6079
</div>
80+
81+
82+
<!-- Main content -->
83+
<div class="col-md-10">
6184
{% assign grouped_by_year = news | group_by_exp:"item", "item.date | date: '%Y'" %}
6285
<div class="table-responsive">
6386
<table class="table table-sm table-borderless">
87+
<tbody>
6488
{% for year_group in grouped_by_year %}
89+
{% assign post_year = year_group.name | plus: 0 %}
6590
<!-- Year divider row -->
66-
<tr class="year-divider">
67-
<th colspan="2">{{ year_group.name }}</th>
91+
<tr>
92+
<td colspan="4" style="padding-top: 0;"><h2 class="year-divider">{{ year_group.name }}</h2></td>
6893
</tr>
94+
6995
{% for item in year_group.items %}
70-
<tr class="news-item" data-tags="{{ item.tags | join: ' ' }}">
71-
<th scope="row">{{ item.date | date: "%m/%d/%y" }}</th>
96+
<tr class="news-item" data-tags="{{ item.tags | join: ' ' }}" style="padding-bottom: 4px;">
97+
<td style="font-weight: bold;">{{ item.date | date: "%m/%d/%y" }}</td>
7298
<td>
7399
{% assign tt = item.tags %}
74100
{% if tt[0] == "event" %}
@@ -80,6 +106,28 @@
80106
{% else %}
81107
<i class="fa fa-file" style="margin-right: 4px" title="{{tt[0]}}"></i>
82108
{% endif %}
109+
</td>
110+
111+
<td>
112+
{% comment %}
113+
{% if item.image %}
114+
{% assign full_url = "https://www.evl.uic.edu/output/originals/" | append: item.image %}
115+
<div style="width: 300px; height:200px;overflow: hidden;">
116+
<a class="news-title" href="{{ item.url | relative_url }}">
117+
<img src="{{ full_url }}" alt="{{ item.title }}" style="width: 100%; height: 100%; object-fit: cover;" />
118+
</a>
119+
</div>
120+
{% else %}
121+
<div style="width: 300px; height:200px;overflow: hidden;">
122+
<a class="news-title" href="{{ item.url | relative_url }}">
123+
<img src="{{ 'assets/img/new-logo-small-480.webp' | relative_url }}" alt="{{ item.title }}" style="width: 100%; height: 100%; object-fit: cover;" />
124+
</a>
125+
</div>
126+
{% endif %}
127+
{% endcomment %}
128+
</td>
129+
130+
<td>
83131
{% if item.inline %}
84132
{{ item.content | remove: '<p>' | remove: '</p>' | emojify }}
85133
{% else %}
@@ -89,26 +137,32 @@
89137
</tr>
90138
{% endfor %}
91139
{% endfor %}
140+
</tbody>
92141
</table>
93142
</div>
143+
</div>
144+
94145
{% endif %}
146+
</div>
95147
{% else %}
96148
<p>No news so far...</p>
97149
{% endif %}
98150
</div>
99151

100152

101153
<script>
102-
const buttons = document.querySelectorAll('.filter-button');
154+
const buttons = document.querySelectorAll('.filter-link');
103155
const newsItems = document.querySelectorAll('.news-item');
104156
105157
buttons.forEach(button => {
106158
button.addEventListener('click', () => {
107159
const tag = button.getAttribute('data-tag');
108160
109161
// Update active button style
110-
buttons.forEach(btn => btn.classList.remove('active'));
111-
button.classList.add('active');
162+
buttons.forEach((btn) => {
163+
btn.classList.remove('news_selected');
164+
});
165+
button.classList.add('news_selected');
112166
113167
// Filter news
114168
newsItems.forEach(item => {

_layouts/profiles.liquid

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ layout: page
4444
<div class="status-section people-status-anchor-target" id="{{ status }}">
4545
<div class="row">
4646
<div class="col-12">
47-
<h2 class="people-category" id="{{ status }}">{{
48-
display_names[forloop.index0] }}</h2>
47+
<h2 class="people-category" id="{{ status }}">{{ display_names[forloop.index0] }}</h2>
4948
</div>
5049
{% assign people_count = people_in_status | size %}
5150

_news/1970/1970-11-12-2783.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
layout: post
3+
title: 'Two-phase IO Enabling Large-scale Performance Introspection (poster)'
4+
date: 1970-11-12
5+
tags: paper
6+
categories: papers
7+
tabs: true
8+
image: fke_vis2023_poster.png-srcw.jpg
9+
---
10+
11+
## Two-phase IO Enabling Large-scale Performance Introspection (poster)
12+
**Fan, K., Kumar, S.**
13+
- Location: Denver, CO
14+
- PDF: [fke_vis2023_poster.pdf](/documents/fke_vis2023_poster.pdf)
15+
16+
[![image](https://www.evl.uic.edu/output/originals/fke_vis2023_poster.png-srcw.jpg){:style="max-width: 100%"}](https://www.evl.uic.edu/output/originals/fke_vis2023_poster.png-srcw.jpg)
17+
- Caption: End-to-End Framework - Viveka
18+
19+
Numerous sophisticated profiling and visualization tools have been developed to enable programmers to expose semantic information from their application components. However, effective and interactive exploration of the profiles of large-scale parallel programs remains a challenge due to the high I/O overheads of profiles and the difficulties in scaling downstream visualization tools. In this poster, we present a full-stack approach to a performance introspection framework that tackles key challenges in profiling and visualizing performance data at scale. Our novelty lies in a scalable and compact data model and a two-phase I/O system, which instill scalability into the profiler making it low overhead-- even at high process counts (< 5%). We then build a web-based, visual-analytic dashboard with linked views. Our profiling and visualization tools are both lightweight and easy-to-use, which strikes a balance between providing sophisticated features and operating quickly and efficiently at high process counts.<br><br>
20+
This work was funded in part by NSF RII Track-4 award 2132013, NSF PPoSS planning award 2217036, NSF PPoSS large award 2316157 and, NSF collaborative research award 2221811. We thank the ALCF's Directors Discretionary (DD) program for offering us the compute hours to run our experiments on the Theta Supercomputer.

_news/1971/1971-01-01-1934.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
layout: post
3+
title: 'Sandin Image Processor (IP)'
4+
date: 1971-01-01
5+
tags: research
6+
categories: research
7+
tabs: true
8+
image: sandinip.jpg-srcw.jpg
9+
---
10+
11+
## Sandin Image Processor (IP)
12+
13+
14+
Analog patches on the Sandin IP
15+
16+
![image](https://www.evl.uic.edu/output/originals/sandinip.jpg-srcw.jpg){:style="max-width: 100%"}
17+
Credit: D. Sandin, EVL
18+
19+
Between 1971 and 1973, Dan Sandin designed and built the Sandin Image Processor (IP) a patch programmable analog computer for real-time manipulation of video inputs through the control of the grey level information. The version that allowed for color manipulation was refered to as the <strong>Color IP</strong><br><br>
20+
This modular design was based on the Moog synthesizer and is often explained as the &ldquo;video equivalent of a Moog audio synthesizer&rdquo; or as a video synthesizer. That is, it accepted basic video signals and mixed and modified them in a fashion similar to what a Moog synthesizer did with audio. An analog, modular, real time, video processing instrument, it provided video processing performance levels and produced subtle and delicate video effects that became popular with early video artists.<br><br>
21+
The IP&rsquo;s real-time effects naturally led to its use in live theater performance, including &ldquo;Electronic Visualization Events&rdquo; where the IP was seen processing the output of Tom DeFanti&rsquo;s Graphics Symbiosis System - <strong>GRASS</strong>. Real-time image processing was combined with sound to create visual concerts.<br><br>
22+
Physically, an Image Processor system would be built out of modules. Several types of modules were defined and typically would be an aluminum box containing a circuit board inside, video connectors and knobs on front of box and power connector on back of box.<br><br>
23+
The modules would be organized in rows. Individual systems could vary in size and increase in power with the addition of more modules. Typical modules would be signal sources, combiners and modifiers, effects modules, sync, color encoder, color decoder, and NTSC video interface.<br><br>
24+
Sandin was an advocate of education and espoused a non-commercial philosophy, emphasizing a public access to processing methods and the machines that assist in generating the images.<br><br>
25+
Accordingly, he placed the circuit board layouts for the IP with a commercial circuit board company and freely published schematics and other documentation. The Do It Yourself ethos combined with the low cost of the parts and a free dissemination of information created a large following of video artists, students, and others interested in experimental video electronics. The modules were often assembled by individuals who had no prior knowledge of electronics fabrication. Also, from time to time Sandin and staff would hold fix-it parties where modules that had failed to work would be repaired by the senior staff.<br><br>
26+
The Image Processor&rsquo;s educational success can be found in its numbers. In its time, more IP&rsquo;s were built than any other commercial &ldquo;video-art&rdquo; synthesizer. This distribution method was, and to a very large extent still is, unique in the proprietary and competitive industrial field of advanced electronics.<br><br>
27+
Sandin&rsquo;s IP, and the instructional video that accompanied the modules trained and inspired numerous individuals who would go on to make substantial contributions to both art and science.<br><br>
28+
Sandin received grants in support of his work from the Rockefeller Foundation (1981), the National Science Foundation, the National Endowment for the Arts (1980) and the Guggenheim Foundation (1978). Sandin&rsquo;s early IP video work &ldquo;Spiral PTL&rdquo; was one of the first pieces included in the Museum of Modern Art&rsquo;s video art collection.

0 commit comments

Comments
 (0)