## Page Not Found

Page not found. Your pixels are in another canvas.

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Page not found. Your pixels are in another canvas.

About me

This is a page not in th emain menu

** Published:**

Experimenting with cocktails and the myriads of flavors and presentations can be a delightful culinary avocation. However, stocking a bar is expensive. Different mixing alcohols typically range from 10-50 USD and you also need a swarm of other syrups, garnishes, and toppers. Even with a reasonable selection of bottles one can still find themselves with a lackluster number of cocktails that they can make. After going through this morose experience myself I began to wonder what an ideal set of cocktail ingredients would be. As it turns out this problem can be solved (sort of) with some *old fashioned* computer science.

** Published:**

March Madness brings about spirited competition amongst friends and family to see who can pick the better basketball tournament bracket. Some pick theirs randomly, some pick by favorite mascot, while others try to use in-depth basketball knowledge to get the edge. At the end of the day, however, there is one winner and many losers.

** Published:**

The Wordle trend has grabbed the attention of an omicron laden society stumbling their way into a new year. It is a fun word game by Josh Wardle where each day a new word is released for people to guess. The daily release schedule, minified design, and simple game mechanics have made the game a viral hit.

** Published:**

Messing around with guitar pedals and finding fun sound combinations is a blast and often a needed distraction from practicing. Pedals, however, are expensive at $100-300 a pop, which makes it rather difficult to own enough to play around with (or any at all in my case). Guitar stores will let you try some, but it is cumbersome to set up a chain in a store and they will eventually kick you out.

** Published:**

The simplex algorithm is a fundamental result in linear programming and optimization. Being remarkably efficient the algorithm quickly became a popular technique for solving linear programs. Having an optimal algorithm is essential, since linear programming is ubiquitous in business analytics, supply chain management, economics, and other important fields. In addition to being efficient the algorithm has a clean and intriguing visual intuition. I will first give some background on linear programs, then show how we can visualize their solution space, and finally how to utilize this to solve linear programs.

** Published:**

After enjoying the incredible season 2 finale of *The Mandalorian* I was inspired to represent baby yoda in his truest form: *mathematical*.

** Published:**

Gradient descent has become ubiquitous in computer science recently largely due to its use in training neural networks. While neural networks are somewhat complex, gradient descent is a very simple, intuitive tool.

** Published:**

COVID-19 has posed unique challenges to the world and forced people to adapt to new ways of living. For example *social distancing* has become the norm in public spaces. In the U.S. keeping people 6 feet apart has become a rigid requirement in any social gathering. While sitting at some of these events, I have started to wonder: is this socially distanced arrangement *optimal*? So I began to investigate.

** Published:**

Sometimes meandering through the labyrinth of life is monotonous and in desperate need of being spiced up. However, this just leads us back to the age old question: *what spices should I use?*

** Published:**

I love scouring old book stores for cool finds and oddities, but I often worry about missing a diamond in the rough. Unfortunately, there is not enough time to dive into every book in a shop and if we cannot judge a book by its cover, then how are we supposed to judge them by only the spine! As a true computer scientist I decided to build an over-the-top tool to help me out.

** Published:**

Humans are great at writing poetry. However, it takes years of reading and practice to develop a command of the language strong enough to produce great metaphor and imagery, while maintaining proper rythym and meter. Naturally, when faced with a difficult task and/or much effort we seek to automate it. So, can poetry writing be automated? *Kind of…*

** Published:**

Part 7 in a collection of posts where I’ll give some of my thoughts and analysis on essays, short stories, novels, movies, etc. It is not really anything academic, but purely for me to practice my writing.

** Published:**

Cholesky factorization is a core concept in linear algebra and frequently used to solve scientific computing problems. While seemingly the furthest thing from Pascal’s triangle and binomial coefficients there is an interesting link using results from a path finding problem. Furthermore, this can be extended to create fractals and other lovely patterns.

** Published:**

A fun hobby of mine is trying to create art with code. I am quite poor at the standard approach to art, so I am fond of using what I am good at to create aesthetically pleasing things. It is also fun to just try random things and see what pops out. I particularly appreciate techniques, which expose structure unexpectedly. One example of this is writing functions for *red*, *green*, and *blue*, which take a pixel coordinate and map it to a color value. Just this simple method can create some beautiful and quite unexpected images.

** Published:**

Cholesky decomposition is the factorization of a positive-definite, Hermitian matrix into the product of a lower triangular matrix and its conjugate transpose. It is useful in numerous applications including solving linear systems, optimization, and monte-carlo simulations.

** Published:**

The Roofline Model is a performance model seeking to give the limitations of a specific hardware component in terms of algorithm performance. The model is often employed visually as a log-log plot of *Arithmetic Intensity* vs *Flops/s*.

** Published:**

All-Reduce is the operation of *reducing* some data across nodes and finishing with the resulting reduction available on all processes.

** Published:**

Consider a problem of the form

** Published:**

Part 6 in a collection of posts where I’ll give some of my thoughts and analysis on essays, short stories, novels, movies, etc. It is not really anything academic, but purely for me to practice my writing.

** Published:**

Part 5 in a collection of posts where I’ll give some of my thoughts and analysis on essays, short stories, novels, movies, etc. It is not really anything academic, but purely for me to practice my writing.

** Published:**

Part 4 in a collection of posts where I’ll give some of my thoughts and analysis on essays, short stories, novels, movies, etc. It is not really anything academic, but purely for me to practice my writing.

** Published:**

Part 3 in a collection of posts where I’ll give some of my thoughts and analysis on essays, short stories, novels, movies, etc. It is not really anything academic, but purely for me to practice my writing.

** Published:**

Part 2 in a collection of posts where I’ll give some of my thoughts and analysis on essays, short stories, novels, movies, etc. It is not really anything academic, but purely for me to practice my writing.

** Published:**

Part 1 in a collection of posts where I’ll give some of my thoughts and analysis on essays, short stories, novels, movies, etc. It is not really anything academic, but purely for me to practice my writing.

** Published:**

Part 0 in a collection of posts where I’ll give some of my thoughts and analysis on essays, short stories, novels, movies, etc. It is not really anything academic, but purely for me to practice my writing.

Notes on computer graphics basics

Notes on computer probability and random variables.

Notes on reproducing kernel hilbert spaces and applications in machine learning

Notes on statistical pattern recognition and machine learning foundations.

D. Nichols, N.-S. Tomov, F. Betancourt, S. Tomov, K. Wong, en J. Dongarra. ISC. 2019.

D. Nichols, K. Wong, S. Tomov, L. Ng, S. Chen, and A. Gessinger. PEARC. 2019.

F. Betancourt, K. Wong, E. Asemota, Q. Marshall, D. Nichols, and S. Tomov. PEARC. 2019.

R. Archibald, E. Chow, E. D’Azevedo, J. Dongarra, M. Eisenbach, R. Febbo, F. Lopez, D. Nichols, S. Tomov, K. Wong, and J. Yin. SMC. 2020.

D. Nichols, A. Marathe, K. Shoga, T. Gamblin, A. Bhatele. IPDPS. 2022.

D. Nichols, S. Singh, S.-H. Lin, A. Bhatele. arXiv [cs.LG]. 2022.

J. H. Davis, J. Shafner, D. Nichols, N. Grube, P. Martin, A. Bhatele. IPDPS. 2023.

H. Menon^{∗}, D. Nichols^{∗}, A. Bhatele, T. Gamblin. Learning to Predict and Improve Build Successes in Package Ecosystems. MSR 2024. ***** Authors contributed equally.

D. Nichols, P. Polasam, H. Menon, A. Marathe, T. Gamblin, A. Bhatele. Performance-Aligned LLMs for Generating Fast Code. arXiv. cs.DC. 2404.18864. 2024.

D. Nichols, A. Marathe, H. Menon, T. Gamblin, A. Bhatele. ISC 2024.

D. Nichols, A. Movsesyan, J-S Yeom, D. Milroy, T. Patki, A. Sarkar, A. Bhatele. Predicting Cross-Architecture Performance of Parallel Programs. IPDPS 2024.

D. Nichols, J. H. Davis, Z. Xie, A. Rajaram, A. Bhatele. Can Large Language Models Write Parallel Code?. HPDC 2024.

A VSCode extension for interacting with HPC workload managers.

A VSCode extension for viewing performance profiles

A website for viewing and analyzing CS publication data

A High Performance Deep Learning Package

Course, *University of Tennessee, Department of Computer Science*, 2019

Teaching assistant for Computer Science 140: Data Structures and Algorithms I.