<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://akougkas.io/feed.xml" rel="self" type="application/atom+xml"/><link href="https://akougkas.io/" rel="alternate" type="text/html" hreflang="en"/><updated>2026-08-26T22:00:37-05:00</updated><id>https://akougkas.io/feed.xml</id><title type="html">akougkas.io</title><subtitle>Anthony Kougkas&apos;s public notebook about building systems, software, research practices, and teams for scientific and agentic work.</subtitle><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><entry><title type="html">This site is now a studio</title><link href="https://akougkas.io/journal/2026/why-this-site-is-changing/" rel="alternate" type="text/html" title="This site is now a studio"/><published>2026-08-26T18:40:00-05:00</published><updated>2026-08-26T18:40:00-05:00</updated><id>https://akougkas.io/journal/2026/why-this-site-is-changing</id><content type="html" xml:base="https://akougkas.io/journal/2026/why-this-site-is-changing/"><![CDATA[<p>The old site was a faculty profile: a long homepage of interests, a project grid with generic art, a publication chart that stopped in 2024, and three blog posts. It listed things well and explained nothing. This one is a working studio.</p> <h2 id="what-changed">What changed</h2> <p>The navigation is four links: <a href="/now/">Now</a>, <a href="/work/">Work</a>, <a href="/journal/">Journal</a>, <a href="/about/">About</a>. Search is a utility. The Archive, Publications, and CV are still here, one click down.</p> <p><a href="/work/clio-coder/">Clio Coder</a> is on the front page because it is the thing I am proudest of right now. <a href="/work/clio/">CLIO</a> and <a href="/work/iowarp/">IOWarp</a> explain what it belongs to and who builds the rest.</p> <p>The <a href="/work/atlas/">project atlas</a> accounts for every repository I own, public and private, grouped by what it is rather than dumped as cards. Private prototypes are named with a one-line summary and no link. Four repositories are deliberately left out: personal machine configuration, home-lab configuration, personal finance tooling, and a retired website prototype. Nothing else is hidden.</p> <p>The Journal is one stream. Essays, tutorials, field notes, updates, and the occasional personal piece are filters, not sections. The three 2024 reflections are here unchanged, with their old <code class="language-plaintext highlighter-rouge">/blog/</code> URLs redirecting; the two 2024 updates were rewritten with links to what the projects became.</p> <h2 id="what-did-not-change">What did not change</h2> <p>Every old public URL redirects: <code class="language-plaintext highlighter-rouge">/projects/</code>, <code class="language-plaintext highlighter-rouge">/blog/</code>, <code class="language-plaintext highlighter-rouge">/teaching/</code>, <code class="language-plaintext highlighter-rouge">/service/</code>, <code class="language-plaintext highlighter-rouge">/talks/</code>, <code class="language-plaintext highlighter-rouge">/news/</code>, the individual project and post pages, and all the publication PDFs. Individual publication pages keep their citation-key URLs. If you find a broken link, <a href="/about/#connect">tell me</a>.</p> <h2 id="how-it-is-built">How it is built</h2> <p>Jekyll, Liquid, semantic HTML, one SCSS file, and a small dependency-free script. No framework, no analytics, no trackers. Content lives in validated data files and Markdown; a validator refuses to build if a fact lacks a source, a private URL leaks, or a repository quietly drops out of the atlas. Static redirect pages are generated from one manifest and checked in CI.</p> <p>Next: more short notes, closer to the moment the detail is still warm.</p>]]></content><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><summary type="html"><![CDATA[The old site was a faculty profile: a long homepage of interests, a project grid with generic art, a publication chart that stopped in 2024, and three blog posts. It listed things well and explained nothing. This one is a working studio.]]></summary></entry><entry><title type="html">Run Clio Coder against a model on your own GPU</title><link href="https://akougkas.io/journal/2026/clio-coder-on-your-own-gpu/" rel="alternate" type="text/html" title="Run Clio Coder against a model on your own GPU"/><published>2026-08-26T18:35:00-05:00</published><updated>2026-08-26T18:35:00-05:00</updated><id>https://akougkas.io/journal/2026/clio-coder-on-your-own-gpu</id><content type="html" xml:base="https://akougkas.io/journal/2026/clio-coder-on-your-own-gpu/"><![CDATA[<p>Clio Coder treats a model as a named <strong>target</strong>: a runtime, an endpoint, a model id, and credentials. The point of this note is to get from nothing to a working target on your own hardware and to see what a run leaves behind. The commands are the ones documented in the v0.3.7 README and <code class="language-plaintext highlighter-rouge">--help</code>.</p> <h2 id="prerequisites">Prerequisites</h2> <ul> <li>Node.js 22.19 or newer and npm.</li> <li>Linux or macOS. Windows is best effort until a stable release.</li> <li>A local inference server. Any of llama.cpp, Ollama, LM Studio, vLLM, or SGLang works; the runtime ids are <code class="language-plaintext highlighter-rouge">llamacpp</code>, <code class="language-plaintext highlighter-rouge">ollama-native</code>, <code class="language-plaintext highlighter-rouge">lmstudio</code>, <code class="language-plaintext highlighter-rouge">vllm</code>, and <code class="language-plaintext highlighter-rouge">sglang</code>.</li> <li>A model loaded in that server. If you have one GPU with 24 GB or more, the release was hardened against <strong>Qwen3.8-27B</strong> (the <code class="language-plaintext highlighter-rouge">unsloth/Qwen3.8-27B-GGUF</code> quantizations) on llama.cpp and LM Studio. A 4-bit quantization at 131072 context fits in 24 GB with a q8_0 KV cache.</li> </ul> <p>Version as of August 26, 2026:</p> <div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ clio-coder --version
Clio Coder 0.3.7
</code></pre></div></div> <h2 id="1-install">1. Install</h2> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm <span class="nb">install</span> <span class="nt">-g</span> @iowarp/clio-coder
clio-coder <span class="nt">--version</span>
</code></pre></div></div> <p>From source instead, pinned to the release:</p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone <span class="nt">--branch</span> v0.3.7 https://github.com/iowarp/clio-coder.git
<span class="nb">cd </span>clio-coder
npm run <span class="nb">install</span>:local
<span class="nb">export </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">"</span><span class="nv">$HOME</span><span class="s2">/.local/bin:</span><span class="nv">$PATH</span><span class="s2">"</span>
<span class="nb">hash</span> <span class="nt">-r</span>
</code></pre></div></div> <p><code class="language-plaintext highlighter-rouge">npm run install:local</code> builds the CLI, links it at <code class="language-plaintext highlighter-rouge">${CLIO_CODER_BIN_DIR:-$HOME/.local/bin}/clio-coder</code>, and initializes the home directory. If an older install is on your <code class="language-plaintext highlighter-rouge">PATH</code>, <code class="language-plaintext highlighter-rouge">command -v clio-coder</code> shows which binary the bare name reaches.</p> <h2 id="2-start-the-model-server">2. Start the model server</h2> <p>For llama.cpp, start it with the flags the README asks for so tool calls and reasoning parse cleanly:</p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>llama-server <span class="nt">--jinja</span> <span class="nt">--reasoning</span> on <span class="nt">-m</span> /path/to/Qwen3.8-27B-Q4_K_M.gguf <span class="nt">-c</span> 131072
</code></pre></div></div> <p>LM Studio needs nothing beyond loading the model. Note the port your server listens on; 8080 is llama.cpp’s default and 1234 is LM Studio’s.</p> <h2 id="3-configure-a-target">3. Configure a target</h2> <p>The interactive way:</p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>clio-coder configure
</code></pre></div></div> <p>The wizard lists runtimes, asks for the endpoint and model, probes it, and saves it as both the chat and worker target. Bare <code class="language-plaintext highlighter-rouge">clio-coder</code> opens the same wizard when nothing usable is configured.</p> <p>The scripted way, which does the same thing without prompts:</p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>clio-coder configure <span class="nt">--id</span> local-lmstudio <span class="nt">--runtime</span> lmstudio <span class="se">\</span>
  <span class="nt">--url</span> http://localhost:1234 <span class="nt">--model</span> your-model-id <span class="se">\</span>
  <span class="nt">--set-orchestrator</span> <span class="nt">--set-fleet-default</span>
clio-coder targets <span class="nt">--probe</span>
</code></pre></div></div> <p><code class="language-plaintext highlighter-rouge">clio-coder targets</code> prints every configured target with its tier, runtime, auth state, URL, model, health, and capability flags. <code class="language-plaintext highlighter-rouge">--probe</code> actually connects. The model id has to match what the server advertises: if LM Studio has a different model resident than the one in your target, the turn fails immediately with a message naming the resident instances instead of silently routing to whatever is loaded. That is deliberate.</p> <h2 id="4-run-one-headless-turn">4. Run one headless turn</h2> <p>From any repository:</p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>clio-coder run <span class="s2">"Summarize this repository layout and its entry points."</span> <span class="nt">--json</span>
</code></pre></div></div> <p><code class="language-plaintext highlighter-rouge">--json</code> streams JSONL events: a <code class="language-plaintext highlighter-rouge">session</code> record with the session id, working directory, target, model, and Clio version; <code class="language-plaintext highlighter-rouge">agent_start</code>, <code class="language-plaintext highlighter-rouge">turn_start</code>, <code class="language-plaintext highlighter-rouge">message_start</code>, <code class="language-plaintext highlighter-rouge">message_end</code>, <code class="language-plaintext highlighter-rouge">turn_end</code>, and <code class="language-plaintext highlighter-rouge">agent_end</code>; and tool events in between when the model calls tools. The <code class="language-plaintext highlighter-rouge">agent_end</code> event carries measured usage (input, output, cache reads and writes, reasoning tokens, API calls, and cost in dollars). Add <code class="language-plaintext highlighter-rouge">--autonomy read-only</code> if you want the guarantee that nothing can be mutated or executed on this turn; every mutating call is denied and the denial is recorded.</p> <p>To hand the same task to a fleet agent instead of the main loop:</p> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>clio-coder run <span class="s2">"&lt;task&gt;"</span> <span class="nt">--agent</span> coder
</code></pre></div></div> <p>That run gets its own receipt.</p> <h2 id="5-read-the-receipt">5. Read the receipt</h2> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>clio-coder evidence list
clio-coder evidence inspect &lt;runId&gt;
</code></pre></div></div> <p>A receipt covers routing intent, the resolved route, worker attestation, priced cost, phase timing, tool activity, safety decisions, and result conformance. Inside an interactive session, <code class="language-plaintext highlighter-rouge">/view verify &lt;runId&gt;</code> shows the same thing. <code class="language-plaintext highlighter-rouge">clio-coder trace</code> reads the durable dispatch trace.</p> <h2 id="6-go-interactive">6. Go interactive</h2> <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd </span>your-project
clio-coder context init     <span class="c"># drafts CLIO-CODER.md from the source tree</span>
clio-coder
</code></pre></div></div> <p><code class="language-plaintext highlighter-rouge">context init</code> writes the project handbook Clio loads every session and can adopt an existing <code class="language-plaintext highlighter-rouge">CLAUDE.md</code>, <code class="language-plaintext highlighter-rouge">AGENTS.md</code>, or <code class="language-plaintext highlighter-rouge">GEMINI.md</code> with provenance. In the session, <code class="language-plaintext highlighter-rouge">/settings</code> changes the model or autonomy level, <code class="language-plaintext highlighter-rouge">/context</code> and <code class="language-plaintext highlighter-rouge">/cost</code> show what is in the window and what it costs, and <code class="language-plaintext highlighter-rouge">/help</code> lists the rest.</p> <h2 id="limitations">Limitations</h2> <ul> <li>Clio Coder is experimental. Interfaces may change between minor versions, and model-specific behavior varies by target. Keep the repository under version control and review what it proposes.</li> <li>A local model’s usefulness depends on the quantization, the context length you can afford, and whether tool calls parse cleanly. The model catalog in the repository records what has been checked per family; other models may need <code class="language-plaintext highlighter-rouge">--jinja</code> or a different chat template.</li> <li>The receipt records what the harness observed. It does not make the model’s reasoning correct.</li> <li>Connecting a Claude or ChatGPT subscription over OAuth uses the same path as the vendors’ own tools; using subscription credentials outside a vendor’s first-party apps may not align with their terms. That is your call, not Clio’s.</li> <li>Windows is best effort.</li> </ul> <p>If something in here does not match what you see, <code class="language-plaintext highlighter-rouge">clio-coder doctor</code> plus <code class="language-plaintext highlighter-rouge">clio-coder --version</code> and <code class="language-plaintext highlighter-rouge">node --version</code> is what I need in a bug report. Redact secrets and private prompts first.</p>]]></content><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><summary type="html"><![CDATA[Clio Coder treats a model as a named target: a runtime, an endpoint, a model id, and credentials. The point of this note is to get from nothing to a working target on your own hardware and to see what a run leaves behind. The commands are the ones documented in the v0.3.7 README and --help.]]></summary></entry><entry><title type="html">Context is part of the system</title><link href="https://akougkas.io/journal/2026/context-is-part-of-the-system/" rel="alternate" type="text/html" title="Context is part of the system"/><published>2026-08-26T18:25:00-05:00</published><updated>2026-08-26T18:25:00-05:00</updated><id>https://akougkas.io/journal/2026/context-is-part-of-the-system</id><content type="html" xml:base="https://akougkas.io/journal/2026/context-is-part-of-the-system/"><![CDATA[<p>An agent can have a capable model and still make a bad call because the system gave it the wrong slice of reality. The calibration changed yesterday. The file belongs to a different experiment. The derived quantity has no provenance. The tool named <code class="language-plaintext highlighter-rouge">compare</code> deletes. The requested action exceeds the user’s authority.</p> <p>None of those are prompt-writing failures. They are systems failures, and I have spent the last two years building around that observation.</p> <h2 id="the-thesis">The thesis</h2> <p>CLIO gives agents what databases give applications: structured, reliable, queryable state. A model on its own has a context window. A scientist has terabytes on a parallel file system, a Slurm queue, instrument metadata, a decade of provenance, and tools with side effects. Something has to select from that world, shape it for one decision, and record what it chose. If that something is invisible, the agent’s answer is unauditable no matter how good the model is.</p> <p>So “context” in CLIO is not a paragraph pasted before a question. It is a runtime product: content, metadata, current state, provenance, tool contracts, policy, and the boundary of human approval, assembled for a particular action and written down.</p> <h2 id="what-that-looks-like-in-code">What that looks like in code</h2> <p>Clio Coder is the component where I have pushed this the furthest, because I write all of it.</p> <p><strong>Selection is bounded.</strong> Every observation tool returns through a truncation envelope with offload paths and next hints, so a large result is bounded rather than silently cut. One <code class="language-plaintext highlighter-rouge">grep</code> cannot blow the window. The compiled prompt and tool schemas stay byte-stable across turns so a local model’s prefix cache stays hot, and the ledger records a cache verdict per call.</p> <p><strong>Authority is typed.</strong> Twenty tools sit in seven policy planes. Bash is default-deny. The autonomy dial decides what runs immediately and what parks for approval; it never widens the tool surface. A worker can only narrow the orchestrator’s authority, never exceed it. Reviewers and judges run read-only. Since v0.3.7 a dispatch carries typed intent: read roots, write roots, expected outputs, and the verification checks the host runs afterwards with no shell.</p> <p><strong>Everything leaves a receipt.</strong> A run seals tokens, priced cost, tool activity, safety decisions, routing, worker attestation, and result conformance. <code class="language-plaintext highlighter-rouge">clio-coder evidence inspect</code> reads it back. Nothing in the audit trail is reconstructed from prose, because prose is exactly the thing you cannot trust an agent about.</p> <p>That is the shape I want across CLIO, not only in the coder: selection, rejection, authority, and action, with a receipt another person can check.</p> <h2 id="more-context-is-not-the-goal">More context is not the goal</h2> <p>Context windows invite an easy metric: fit more tokens. Scientific context does not become correct when it becomes large. A smaller, well-scoped package with provenance beats a giant retrieval dump. A refusal caused by missing authority beats a plausible action. An explicit conflict between two measurements beats a smooth synthesis that hides the disagreement.</p> <p>The objective is the smallest sufficient context for a bounded action, with enough provenance and state to make the result inspectable.</p> <h2 id="context-is-a-data-movement-problem">Context is a data-movement problem</h2> <p>At scientific scale the right evidence lives in object storage, a parallel file system, an instrument buffer, or another site. Moving all of it toward a model wastes bandwidth; summarizing too early erases the feature the agent needs. Where filtering happens, which representation moves, what gets cached, when a derived object is safer than the source: these are the questions <a href="/work/hermes/">Hermes</a> and <a href="/work/labios/">LABIOS</a> asked about I/O, and IOWarp’s transfer and assimilation engines ask them again with an agent on the other end.</p> <h2 id="what-is-unresolved">What is unresolved</h2> <p>I do not have a universal schema for context and I doubt one exists across instruments, simulations, and organizations. Provenance describes a chain without proving its inputs were right. A perfect receipt does not repair a biased selection policy. Retrieval quality, adversarial content in retrieved text, changing permissions, and the cost of keeping history are all open. And context can expose the thing a system is meant to protect, so minimization and redaction have to happen before data reaches a model, not after generation.</p> <p>The model matters. But the model acts inside the reality the surrounding system constructs. Design, test, and audit that layer like any other component.</p>]]></content><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><summary type="html"><![CDATA[An agent can have a capable model and still make a bad call because the system gave it the wrong slice of reality. The calibration changed yesterday. The file belongs to a different experiment. The derived quantity has no provenance. The tool named compare deletes. The requested action exceeds the user’s authority.]]></summary></entry><entry><title type="html">2024 Reflections: Year in Review</title><link href="https://akougkas.io/journal/2024/thoughts-on-2024/" rel="alternate" type="text/html" title="2024 Reflections: Year in Review"/><published>2024-12-30T05:14:58-06:00</published><updated>2026-08-26T00:00:00-05:00</updated><id>https://akougkas.io/journal/2024/thoughts-on-2024</id><content type="html" xml:base="https://akougkas.io/journal/2024/thoughts-on-2024/"><![CDATA[<h2 id="a-year-of-accomplishments">A Year of Accomplishments</h2> <p>Reflecting on 2024, I am proud to share a year filled with remarkable accomplishments. One of the most significant milestones was helping secure the five-year NSF award that gave <a href="/work/iowarp/">IOWarp</a> room to grow. The project was a culmination of years of dedication and passion for my field. Building it with a diverse team across universities, companies, and national laboratories was not just a professional milestone but a testament to the collaborative spirit and innovative potential of our community.</p> <p>Beyond IOWarp, my year was marked by significant milestones: nine published papers, new PhD students joining my team, and two senior students successfully proposing their dissertations. A particular highlight was my transition from conference participant to organizer. This new role as part of the organization committee was a first for me, fostering my growth as a <a href="/archive/#service">community leader</a>. It was an exciting and rewarding experience, offering fresh perspectives and enhancing my contribution to the field in ways I hadn’t anticipated. This evolution in my professional journey was both challenging and deeply satisfying, underscoring a year of multifaceted growth and achievement.</p> <h2 id="lessons-from-challenges">Lessons from Challenges</h2> <p>However, 2024 wasn’t without its challenges. Professionally, I encountered moments where my contributions felt undervalued. This led to tough conversations and moments of self-doubt. But through these challenges, I learned a crucial lesson: value and appreciation should come from within<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>. It’s easy to fall into the trap of seeking external validation, but true empowerment comes from recognizing one’s own worth<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>.</p> <p>On a personal level, ending a two-year relationship was a significant turning point. This experience taught me about the importance of self-worth and the courage needed to make difficult decisions<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup>. It was a reminder that personal well-being is crucial and that sometimes, ending a chapter is necessary for growth. This experience also highlighted the power of introspection and self-reflection, leading me to a deeper understanding of who I am and what drives me.</p> <h2 id="authenticity-the-key-to-growth">Authenticity: The Key to Growth</h2> <p>A central theme of this year has been the importance of authenticity<sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">4</a></sup>. Whether in personal relationships or professional roles, being true to oneself fosters genuine connections and growth. For many years, I found myself conforming to societal roles, losing touch with my authentic self. This year, I embraced the power of being genuine, realizing that authenticity is not just about self-expression but also about finding those who appreciate you for who you truly are<sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">5</a></sup>. This shift in mindset has been transformative, fostering more meaningful connections both personally and professionally.</p> <h2 id="ai-a-companion-in-self-discovery">AI: A Companion in Self-Discovery</h2> <p>Looking ahead, I’m eager to contribute to the development of AI in a way that democratizes its benefits. AI should not just be a tool for the privileged few; it has the potential to bridge gaps in access to knowledge, productivity, and creativity for everyone. My focus on <a href="/archive/#projects">agentic AI and smart agents in data management</a> aims to create systems that interact with humans in a natural, intuitive way, making data more accessible and actionable.</p> <p>I see AI as more than a tool—it’s a partner that learns, adapts, and evolves alongside us. It’s a companion that empowers us to focus on what truly matters: creativity, problem-solving, and human connection. As society continues to shape AI, we also have a responsibility to guide its evolution ethically and inclusively, ensuring it reflects our collective values.</p> <h2 id="reflections-and-resolutions">Reflections and Resolutions</h2> <p>2024 has been a year of profound growth, both personally and professionally. I’ve learned to value authenticity, embrace challenges as opportunities for growth, and look inward for validation rather than relying on external recognition. These lessons have not only shaped who I am today but have also set the tone for what I want to achieve moving forward.</p> <p>As 2025 approaches, I’m excited to build on the foundation laid this year. I’ll continue to refine my vision for agentic AI, develop new projects, and explore opportunities for growth and progress. Personally, I aim to be more socially engaged, foster meaningful connections, and embrace new experiences that align with my authentic self.</p> <h2 id="closing-thoughts">Closing Thoughts</h2> <p>If I were to sum up 2024 in one word, it would be “transformation.” It’s been a year of change, introspection, and empowerment—a year that has prepared me for the challenges and opportunities ahead<sup id="fnref:6"><a href="#fn:6" class="footnote" rel="footnote" role="doc-noteref">6</a></sup>. As I step into 2025, I’m filled with hope and excitement for the future, ready to embrace new adventures, create meaningful impact, and continue evolving in ways that matter most.</p> <p>To those who’ve been part of my journey this year—thank you. You know who you are and I couldn’t be more proud of my connection with you<sup id="fnref:7"><a href="#fn:7" class="footnote" rel="footnote" role="doc-noteref">7</a></sup>.</p> <p>Here’s to a bright and fulfilling year ahead for all of us.</p> <hr/> <h2 id="some-resources"><strong>Some resources</strong></h2> <div class="footnotes" role="doc-endnotes"> <ol> <li id="fn:1"> <p><a href="https://mindfulspark.org/2024/10/16/internal-vs-external-validation-understanding-the-balance-for-emotional-well-being/">Internal vs External Validation: Understanding the Balance for Emotional Well-being</a>. <em>MindfulSpark</em>. (2024). <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p> </li> <li id="fn:2"> <p>Kille D, Eibach R, Wood J, Holmes J. <a href="https://www.sciencedirect.com/science/article/abs/pii/S0022103116302943">Who can’t take a compliment? The role of construal level and self-esteem in accepting positive feedback from close others.</a> <em>Journal of Experimental Social Psychology</em>. (2017). <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p> </li> <li id="fn:3"> <p>Dictionary of Psychology. <a href="https://dictionary.apa.org/collective-self-esteem">Collective Self-esteem</a>. <em>American Psychological Association</em>. (2018) <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p> </li> <li id="fn:4"> <p><a href="https://neurolaunch.com/authenticity-psychology/">The Psychology of Authenticity: Understanding Its Role in Personal Growth</a>. <em>NeuroLaunch</em>. (2024). <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p> </li> <li id="fn:5"> <p>Bartlett M, Valdesolo P, Arpin S. <a href="https://www.tandfonline.com/doi/abs/10.1080/00224545.2019.1601609">The paradox of power: The relationship between self-esteem and gratitude</a>. <em>Journal of Social Psychology</em>. (2020);160(1):27-38. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p> </li> <li id="fn:6"> <p><em>American Psychological Association</em>. <a href="https://www.apa.org/news/press/releases/2019/09/relationships-self-esteem">Positive relationships boost self-esteem, and vice versa</a>. (2019) <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p> </li> <li id="fn:7"> <p>Ottiger, A.S. <a href="https://link.springer.com/referenceworkentry/10.1007/978-3-031-48129-1_167">Authenticity, Heroism, and Humanistic Person-Centered Psychology</a>. In: Allison, S.T., Beggan, J.K., Goethals, G.R. (eds) <em>Encyclopedia of Heroism Studies</em>. Springer, (2024) <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p> </li> </ol> </div>]]></content><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><summary type="html"><![CDATA[A Year of Accomplishments]]></summary></entry><entry><title type="html">Change Hurts! Does it have to?</title><link href="https://akougkas.io/journal/2024/thoughts-on-change/" rel="alternate" type="text/html" title="Change Hurts! Does it have to?"/><published>2024-12-07T06:41:46-06:00</published><updated>2026-08-26T00:00:00-05:00</updated><id>https://akougkas.io/journal/2024/thoughts-on-change</id><content type="html" xml:base="https://akougkas.io/journal/2024/thoughts-on-change/"><![CDATA[<p><strong>Change</strong> is an inevitable part of life, something I’ve come to understand deeply through my varied experiences. For over a decade, I served in the military, working closely with countless soldiers from all walks of life. Many of them stepped into my unit terrified of what lay ahead, only to discover strength they didn’t know they possessed. Now, as an educator, I encounter many many college students learning to navigate unfamiliar academic and social landscapes. Throughout these experiences, I’ve seen people grapple with seemingly insurmountable changes—shifting careers, ending relationships, relocating to new cities—each event bringing its own flavor of discomfort and fear.</p> <h2 id="why-does-change-feel-so-painful"><strong>Why Does Change Feel So Painful?</strong></h2> <p>Change hurts because it disrupts our rhythm. We’re wired to crave stability and familiarity. When circumstances shift, our instinct is to hold on to what we know, focusing on the loss: the comforting routine we once followed, the partner with whom we shared late-night conversations, the job title that gave us our sense of identity. In my own life, I’ve felt this pain acutely. Serving in a disciplined environment like the military and then moving into the more fluid world of academia has taught me just how deeply our expectations and surroundings define us. When those expectations vanish, we’re left exposed and uncertain.</p> <blockquote> <p>When approached with curiosity and resilience, these moments of unease can lead to transformative insights and achievements.</p> </blockquote> <p>But does it have to hurt this much? I’ve found that pain is not a requirement, but a symptom of how we frame the experience. When I look back, I recall moments of personal upheaval—times when I had to leave behind communities, comrades, and even personal comforts. The ache was real, but I also discovered a startling truth: each ending cleared space for something new and meaningful to emerge.</p> <h2 id="shifting-the-narrative-infinite-possibilities"><strong>Shifting the Narrative: Infinite Possibilities</strong></h2> <p>Instead of dwelling on what’s lost, we can shift focus to what stands to be gained. Consider this: if you’ve recently parted ways with someone important, it’s natural to miss the routines you shared—your favorite show watched side-by-side, the familiar bar where you both unwound. But that same absence creates room for new interests, new communities, and new relationships. When I once faced a significant personal shift, I channeled my energy into exploring new technologies—immersing myself in learning about Large Language Models (LLMs) and cutting-edge software. By diving into something fresh, I not only distracted myself from the sting of loss but opened doors to professional opportunities, potential friendships, and yes, even the possibility of meeting someone who shares my passions.</p> <figure> <img src="/assets/img/atl_aquarium.webp" alt="A school of fish swimming through blue water at the Georgia Aquarium" width="4080" height="3072" loading="lazy"/> <figcaption>Taken at the Georgia Aquarium in Atlanta, Georgia (Nov 24).</figcaption> </figure> <p>It’s not just technology or hobbies. Perhaps you’ve never considered taking up a fitness class, joining a local volunteer group, or attending industry conferences that might broaden your horizons. Each leap into unfamiliar territory, each embrace of a new skill or social circle, transforms that initial pain into a platform for reinvention. Whether you choose to embrace these changes or not, the experience is transformative. It’s a chance to learn, grow, and make new connections.</p> <h2 id="balancing-adaptability-and-commitment"><strong>Balancing Adaptability and Commitment</strong></h2> <p>Of course, there’s a balance to be struck. I’ve learned from my time mentoring both soldiers and students that adaptability is a superpower. The principle of “quit often and quit early,” for example, encourages us to exit situations that don’t serve our well-being. It opens the door to alternatives—new jobs, new friendships, new lifestyles—that might fulfill us more deeply.</p> <p>However, too much quitting can lead to shallow connections. We need to ensure that while we remain open to new possibilities, we also invest time and energy in cultivating depth. It might mean choosing to stick with a challenging relationship or a difficult project a little longer, not out of fear of change, but out of respect for what genuine bonds and long-term goals can bring.</p> <h2 id="grounding-in-past-successes-and-global-perspective"><strong>Grounding in Past Successes and Global Perspective</strong></h2> <p>When facing a new wave of change, remember the transitions you’ve already overcome. Every milestone in your life’s journey—whether it was surviving the intensity of basic training in the military, adapting to the freedom of college life, or finding your footing in a new city—proves that you’re not defined by static circumstances. You’re defined by your ability to evolve.</p> <figure> <img src="/assets/img/chicago_bay.webp" alt="The Chicago skyline across Lake Michigan from Montrose Harbor" width="1920" height="1135" loading="lazy"/> <figcaption>Taken from the Montrose Harbor in Chicago, Illinois (Jun 24).</figcaption> </figure> <p>Grounding yourself in your personal history can also help you maintain perspective. I often remind myself that life is a series of waves. Some crests carry us high, others dip low, but the motion is constant. Recognize that change is universal; it’s happening in everyone’s life, all the time. You’re part of a global tapestry where millions of others are also trying to find their equilibrium amid shifting sands. Connecting with others who share their own stories—whether through local support groups, online forums, or even professional networks—can reinforce that you’re not alone.</p> <h2 id="embracing-the-duality-of-change"><strong>Embracing the Duality of Change</strong></h2> <p>Change carries a dual nature: it can feel catastrophic and liberating, punishing and rewarding, fearful and exciting. I’ve had the privilege of seeing thousands of individuals from diverse backgrounds face life-altering transitions. Across socioeconomic statuses, races, genders, and identities, I’ve observed that what differentiates those who flourish from those who stagnate is the willingness to embrace the unknown and reframe adversity as an opening rather than a closing.</p> <figure> <img src="/assets/img/golf.webp" alt="Late-afternoon light through trees at Montrose Golf Course in Chicago" width="1920" height="1428" loading="lazy"/> <figcaption>Taken at the Montrose Golf Course in Chicago, Illinois (Jun 24).</figcaption> </figure> <p>From my own perspective—having lived multiple “lives” across military, academic, and communal environments—I know that I’m not immune to the pain of change. But I’ve learned to interpret that pain differently. Instead of treating it as a sign that something’s wrong, I see it as a cue that I’m about to learn something new about myself. This reframing doesn’t numb the discomfort entirely, but it converts fear into a sense of adventure, inviting me to ask, “What’s next?”</p> <h2 id="harnessing-change-for-growth"><strong>Harnessing Change for Growth</strong></h2> <p>As someone who has guided thousands of soldiers, mentored countless students, and navigated my own shifting tides, I can attest: change will keep coming. It’s an inevitable constant in life, touching everything from our careers and relationships to our personal passions. But by reframing how we see it—from focusing on what’s lost to celebrating what could be—change can cease to be a source of paralyzing pain and become a catalyst for becoming someone stronger, wiser, and more resilient.</p> <p>Take small steps toward this mindset shift. Try a new hobby, engage in a new network, or read up on success stories from others who’ve transformed their lives after major setbacks. Remember that you hold the power to define what change means to you.</p> <p>Change hurts—but it doesn’t have to! It can heal, expand, and elevate you, if you let it.</p> <hr/> <h2 id="some-resources"><strong>Some Resources</strong></h2> <ul> <li><i>Positive thinking: Stop negative self-talk to reduce stress</i>. (Mayo Clinic, n.d.) <a href="https://www.mayoclinic.org/healthy-lifestyle/stress-management/in-depth/positive-thinking/art-20043950">Mayo Clinic</a></li> <li><i>How to stop languishing and start finding flow</i>. (Grant, A., 2023) <a href="https://www.ted.com/talks/adam_grant_how_to_stop_languishing_and_start_finding_flow?subtitle=en">TED</a></li> <li><i>Resilience</i>. (American Psychological Association, n.d.) <a href="https://www.apa.org/topics/resilience">APA</a></li> <li><i>Stress</i>. (American Psychological Association, n.d.) <a href="https://www.apa.org/topics/stress/body">APA</a></li> <li><i>How to Let In New Perspectives</i>. (Tania Israel, 2023) <a href="https://greatergood.berkeley.edu/podcasts/item/how_to_let_in_new_perspectives_tania_israel">Greater Good Science Center at UC Berkeley</a></li> <li><i>What Having a Growth Mindset Actually Means</i>. (HBR, 2016) <a href="https://hbr.org/2016/01/what-having-a-growth-mindset-actually-means">Harvard Business Review</a></li> </ul>]]></content><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><summary type="html"><![CDATA[Change is an inevitable part of life, something I’ve come to understand deeply through my varied experiences. For over a decade, I served in the military, working closely with countless soldiers from all walks of life. Many of them stepped into my unit terrified of what lay ahead, only to discover strength they didn’t know they possessed. Now, as an educator, I encounter many many college students learning to navigate unfamiliar academic and social landscapes. Throughout these experiences, I’ve seen people grapple with seemingly insurmountable changes—shifting careers, ending relationships, relocating to new cities—each event bringing its own flavor of discomfort and fear.]]></summary></entry><entry><title type="html">Reflecting on SC24</title><link href="https://akougkas.io/journal/2024/thoughts-on-sc24/" rel="alternate" type="text/html" title="Reflecting on SC24"/><published>2024-11-26T10:41:16-06:00</published><updated>2026-08-26T00:00:00-05:00</updated><id>https://akougkas.io/journal/2024/thoughts-on-sc24</id><content type="html" xml:base="https://akougkas.io/journal/2024/thoughts-on-sc24/"><![CDATA[<h2 id="my-experience-at-supercomputing-2024-sc24">My Experience at Supercomputing 2024 (SC24)</h2> <p>this year’s supercomputing conference (sc24) in atlanta was a whirlwind! with 17,000 attendees, it was a massive gathering of the high-performance computing (hpc) community – a community i’ve been a part of since 2013. this year felt particularly special, not just because of the sheer scale of the event, but also because of the significant shift towards ai and the prominent role my team and i played.</p> <figure> <img src="/assets/img/sc24.webp" alt="Members of the Gnosis Research Center together at SC24 in Atlanta" width="3963" height="2229" loading="eager"/> <figcaption>gnosis research center at sc24 (missing some people).</figcaption> </figure> <h2 id="the-gnosis-research-center-takes-on-sc24">The Gnosis Research Center Takes on SC24</h2> <p>sc24 was a major event for the gnosis research center, which i co-founded and currently direct. i was joined by five of my students and a fellow faculty member, and we were thrilled to have a strong presence at the conference. we presented papers, held posters, led workshops, participated in panels, and had a fantastic time networking with colleagues and peers.</p> <p>two papers anchored part of that program: <a href="/publications/logan2024megammap/">megammap</a>, which explores the boundary between memory and storage for data-intensive workloads, and <a href="/publications/devarajan2024dftracer/">dftracer</a>, which makes workflow data movement easier to trace and analyze. the publication records carry the authorship, abstracts, artifacts, and durable citation details; what mattered to me in atlanta was watching those ideas become conversations with the community.</p> <p>i personally had the honor of co-chairing the pdsw workshop on parallel data storage, a topic that’s incredibly important in the era of ai and big data. i also presented our iowarp project at the hdf5 user group meeting, showcasing some of the exciting research we’re doing at gnosis.</p> <p>seeing my students actively participate and contribute to the conference was incredibly rewarding. we even had a poster nominated for the best poster award! it’s through events like sc24 that we can foster the next generation of researchers and innovators in hpc.</p> <h2 id="the-rise-of-ai-in-hpc">The Rise of AI in HPC</h2> <p>one of the most striking trends at sc24 was the undeniable convergence of ai and hpc. this is a natural evolution, as ai requires the immense computational power that hpc offers, and hpc can benefit greatly from the intelligence ai brings to scientific workflows.</p> <p>this shift towards ai is a game-changer. for the first time, we have tools that can generate new content, act as intelligent assistants, and automate tedious tasks. this opens up incredible possibilities for scientific discovery and exploration.</p> <p>imagine, for instance, using ai in climate science. we can feed ai massive datasets from sensors, satellites, and simulations. the ai can then process this information, generate insights, and even formulate hypotheses for the next iteration of climate modeling. this is just one example of how ai is becoming deeply ingrained in scientific workflows, both for learning and inference.</p> <p>the growing presence of major players like nvidia, google, and microsoft at sc24 further underscores this trend. these companies are pushing the boundaries of ai and hpc, and their engagement with academic institutions and research labs is fueling innovation in the field.</p> <h2 id="supercomputing-goes-mainstream">Supercomputing Goes Mainstream</h2> <p>another key takeaway from sc24 was the sense that hpc is finally breaking out of its niche and entering the mainstream. with the rise of ai, the need for supercomputing resources is becoming more widespread, and this is attracting attention from a broader audience.</p> <p>this is a positive development for several reasons. first, it exposes more people to the exciting world of hpc, potentially attracting new talent to the field. we desperately need more skilled researchers and engineers in hpc, and this increased visibility can help address the talent gap.</p> <p>second, a wider audience means more scrutiny and diverse perspectives, which can lead to innovative solutions and accelerate progress. as hpc becomes more critical to various industries and applications, the collective effort to overcome challenges and push the boundaries of what’s possible will only intensify.</p> <h2 id="tips-and-hints-for-conference-goers">Tips and Hints for Conference Goers</h2> <p>attending a conference like sc24 can be overwhelming, especially for newcomers. here are a few tips to help you make the most of your experience:</p> <ul> <li><strong>prioritize networking:</strong> focus on events where you can interact with people, such as workshops, panels, and social gatherings. don’t get bogged down in technical talks – those are usually available in the proceedings afterwards. coffee breaks are a great opportunity to strike up conversations and meet new people.</li> <li><strong>pace yourself:</strong> sc is a marathon, not a sprint. get plenty of rest, stay hydrated, and bring healthy snacks to keep your energy levels up.</li> <li><strong>be curious:</strong> don’t be afraid to approach people and ask about their work. most people are passionate about their research and happy to share their insights.</li> <li><strong>come prepared:</strong> bring business cards to exchange contact information quickly and easily.</li> <li><strong>promote your work:</strong> if you’re presenting at the conference, use social media to generate interest and draw people to your session.</li> </ul> <h2 id="looking-ahead">Looking Ahead</h2> <p>sc24 was a fantastic experience, and i left feeling incredibly energized about the future of hpc and ai. there are still challenges to overcome, particularly in the area of data management for ai workloads. however, the energy and innovation on display at sc24 give me confidence that we’re on the right track.</p> <p>i’m already looking forward to sc25!</p>]]></content><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><summary type="html"><![CDATA[My Experience at Supercomputing 2024 (SC24)]]></summary></entry><entry><title type="html">DLIO joins MLPerf Storage</title><link href="https://akougkas.io/journal/2024/dlio-joins-mlperf-storage/" rel="alternate" type="text/html" title="DLIO joins MLPerf Storage"/><published>2024-11-15T11:00:00-06:00</published><updated>2026-08-26T00:00:00-05:00</updated><id>https://akougkas.io/journal/2024/dlio-joins-mlperf-storage</id><content type="html" xml:base="https://akougkas.io/journal/2024/dlio-joins-mlperf-storage/"><![CDATA[<p><a href="https://github.com/mlcommons/storage">MLPerf Storage</a> now uses the <a href="https://github.com/argonne-lcf/dlio_benchmark">DLIO Benchmark</a> to generate the I/O behavior of deep-learning training workloads. That is the whole announcement, and I am delighted by it.</p> <h2 id="what-dlio-does">What DLIO does</h2> <p>Deep-learning training does not stress storage in one universal way. Datasets, worker counts, epochs, checkpoints, metadata operations, and framework-specific access patterns all change the picture. Running an entire training stack to study each storage design is expensive and hard to reproduce.</p> <p>DLIO makes that behavior configurable. You describe the pattern you want to exercise and it generates that pattern, repeatably, without the model. The <a href="https://doi.org/10.1109/CCGrid51090.2021.00018">CCGrid 2021 paper</a> explains the design and the experiments behind it; it won the best paper award, which was a good day.</p> <h2 id="why-the-mlperf-integration-matters-to-me">Why the MLPerf integration matters to me</h2> <p>A benchmark becomes real when a second community uses it to compare systems they built. MLPerf Storage has to exercise storage under defined workload configurations, and its public implementation names DLIO as the generator for those paths. Anyone can inspect the dependency, the configurations, and the rules.</p> <p>Three things I take from this. DLIO left the environment that produced the paper; other people install it, configure it, and change it without our private context. Integration sharpened the interfaces, because assumptions that felt harmless in one lab became bugs across submitters’ platforms. And the benchmark now sits in a longer evidence chain: MLPerf defines the process, DLIO produces the workload, a submitter supplies the system.</p> <h2 id="credit">Credit</h2> <p>DLIO started as collaborative research by Hariharan Devarajan, Huihuo Zheng, me, Xian-He Sun, and Venkatram Vishwanath. My part was shaping the benchmark and the systems argument around it. The Argonne team, contributors, and the MLCommons Storage community did the less visible work of turning a research benchmark into shared infrastructure. Being part of MLPerf does not make DLIO a standard by declaration; it means the code was useful enough for another community to build on. That is the outcome I want from research software.</p>]]></content><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><summary type="html"><![CDATA[MLPerf Storage now uses the DLIO Benchmark to generate the I/O behavior of deep-learning training workloads. That is the whole announcement, and I am delighted by it.]]></summary></entry><entry><title type="html">NSF funds the next five years of IOWarp</title><link href="https://akougkas.io/journal/2024/iowarp-nsf-award/" rel="alternate" type="text/html" title="NSF funds the next five years of IOWarp"/><published>2024-09-01T12:00:00-05:00</published><updated>2026-08-26T00:00:00-05:00</updated><id>https://akougkas.io/journal/2024/iowarp-nsf-award</id><content type="html" xml:base="https://akougkas.io/journal/2024/iowarp-nsf-award/"><![CDATA[<p>Thrilled to share that the National Science Foundation has funded IOWarp for five years, 2024 through 2029. It is a collaborative award among Illinois Tech’s Gnosis Research Center, The HDF Group, and the University of Utah, and it is the largest single research investment my group has been part of. The details are in the <a href="https://www.nsf.gov/awardsearch/showAward?AWD_ID=2411318">NSF record for OAC-2411318</a>. Xian-He Sun is the principal investigator; I am a co-PI and the architect.</p> <h2 id="what-we-are-building">What we are building</h2> <p>IOWarp bridges HPC, AI, and data analytics with one idea: scientific workflows need a context layer, not only a faster byte pipe. The runtime moves data across storage tiers, reshapes it across formats, and exposes it to agents and people through tools with explicit contracts. It builds directly on <a href="/work/hermes/">Hermes</a>, our multi-tier buffering system, and on years of work on labels, tracing, and task-based I/O.</p> <p>The original announcement mentioned a specialized language model for natural-language data exploration. The plan evolved. What shipped instead is the CLIO ecosystem: a context store, a tool kit of MCP servers, a science agent, and a coding agent, which you can read about in the <a href="/work/clio/">CLIO story</a>.</p> <h2 id="what-the-award-changes">What the award changes</h2> <p>Five years is enough time to do systems work properly: architecture, interfaces, implementation, integration, evaluation, documentation, releases, and time for people outside the lab to find the assumptions we missed. It also means students can own substantial pieces of the platform rather than isolated experiments.</p> <p>An award is runway. The proof is in releases, and that is what the <a href="https://github.com/iowarp">IOWarp organization</a> has been accumulating since.</p> <p><em>Updated August 2026 with links to what the project became.</em></p>]]></content><author><name>Anthony Kougkas</name><uri>https://akougkas.io/about/</uri></author><summary type="html"><![CDATA[Thrilled to share that the National Science Foundation has funded IOWarp for five years, 2024 through 2029. It is a collaborative award among Illinois Tech’s Gnosis Research Center, The HDF Group, and the University of Utah, and it is the largest single research investment my group has been part of. The details are in the NSF record for OAC-2411318. Xian-He Sun is the principal investigator; I am a co-PI and the architect.]]></summary></entry></feed>