I am a PhD Candidate in the Computer Science department at the University of Virginia (UVA). I am working under the supervision of Professor Kevin Skadron. My research focus lies in Computer Architecture. I am currenlty working on designing a flexible CPU cache architecture to better support both the regular and irregular memory access patterns. Before that I worked on automata processing and evaluated the potential of Deterministic Finite Automata (DFA) and Non-deterministic Finite Automata (NFA) on FPGA-based automata processing engine.
Bangladesh is my home country. I have completed my undergraduate in Computer Science and Engineering from Bangladesh University of Engineering and Technology (BUET). My undergraduate thesis supervisor was Professor Rifat Shahriyar. As a part of my undergad thesis I worked on parallelizing the Branch and Bound approximation algorithm for the Travelling Sales Man Problem (TSP).

Feel free to reach out to me via email at farzana at virginia dot edu

Get in touch!

Education

PhD Candidate
Computer Science
University of Virginia
2018 - Present
BSc
Computer Science and Engineering
Bangladesh University of Engineering and Technology (BUET)
2011 - 2016
Higher Secondary Certificate (HSC)
Govt. Hazi Mohd. Mohsin College, Chittagong, Bangladesh
2008 - 2010
Secondary School Certificate (SSC)
B. M. S. Girls' High School and College, Chittagong, Bangladesh
2006 - 2008

Courses

  • Hardware Security
  • Compilers
  • Computer Architecture & Design
  • Operating Systems
  • Algorithms
  • Database Systems

Professional Experience

Graduate Research Assistant
Department of Computer Science
University of Virginia (UVA)
Fall 2018 - Present
Software Engineer Intern - Systems
Meta Platforms Inc.
Summer 2022
Graduate Teaching Assistant
Department of Computer Science
University of Virginia (UVA)
Fall 2019 - Fall 2021
Software Engineer
iPay Systems Ltd.
Feb 2016 - Jan 2017
Undergraduate Research Assistant
Department of Computer Science and Engineering
Bangladesh University of Engineering and Technology (BUET)
Jul 2014 - Jul 2015

Publications

    1. Alif Ahmed, Farzana Ahmed Siddique, Kevin Skadron, "GraphTango: A Hybrid Representation Format for Efficient Streaming Graph Updates and Analysis ", arXiv preprint arXiv:2212.11935, 2022.
      Abstract
      Streaming graph processing involves performing updates and analytics on a time-evolving graph. The underlying representation format largely determines the throughputs of these updates and analytics phases. Existing formats usually employ variations of hash tables or adjacency lists. However, adjacency-list-based approaches perform poorly on heavy-tailed graphs, and the hash-based approaches suffer on short-tailed graphs. We propose GraphTango, a hybrid format that provides excellent update and analytics throughput regardless of the graph's degree distribution. GraphTango switches among three different formats based on a vertex's degree: i) Low-degree vertices store the edges directly with the neighborhood metadata, confining accesses to a single cache line, ii) Medium-degree vertices use adjacency lists, and iii) High-degree vertices use hash tables as well as adjacency lists. In this case, adjacency list provides fast traversal during the analytics phase, while the hash table provides constant-time lookups during the update phase. We further optimized the performance by designing an open-addressing-based hash table that fully utilizes every fetched cache line. In addition, we developed a thread-local lock-free memory pool that allows fast growing/shrinking of the adjacency lists and hash tables in a multi-threaded environment. We evaluated GraphTango with the help of the SAGA-Bench framework and compared it with four other representation formats. On average, GraphTango provides 4.5x higher insertion throughput, 3.2x higher deletion throughput, and 1.1x higher analytics throughput over the next best format. Furthermore, we integrated GraphTango with the state-of-the-art graph processing frameworks DZiG and RisGraph. Compared to the vanilla DZiG and vanilla RisGraph, [GraphTango + DZiG] and [GraphTango + RisGraph] reduces the average batch processing time by 2.3x and 1.5x, respectively.
    2. Farzana Ahmed Siddique, Tommy James Tracy II, Nathan Brunelle, Kevin Skadron, "Deterministic vs. Non Deterministic Finite Automata in Automata Processing", arXiv preprint arXiv:2210.10077, 2022.
      Abstract
      Linear-time pattern matching engines have seen promising results using Finite Automata (FA) as their computation model. Among different FA variants, deterministic (DFA) and non-deterministic (NFA) are the most commonly used computation models for FA-based pattern matching engines. Moreover, NFA is the prevalent model in pattern matching engines on spatial architectures. The reasons are: i) DFA size, as in #states, can be exponential compared to equivalent NFA, ii) DFA cannot exploit the massive parallelism available on spatial architectures. This paper performs an empirical study on the #state of minimized DFA and optimized NFA across a diverse set of real-world benchmarks and shows that if distinct DFAs are generated for distinct patterns, #states of minimized DFA are typically equal to their equivalent optimized NFA. However, NFA is more robust in maintaining the low #states for some benchmarks. Thus, the choice of NFA vs. DFA for spatial architecture is less important than the need to generate distinct DFAs for each pattern and support these distinct DFAs' parallel processing. Finally, this paper presents a throughput study for von Neumann's architecture-based (CPU) vs. spatial architecture-based (FPGA) automata processing engines. The study shows that, based on the workload, neither CPU-based automata processing engine nor FPGA-based automata processing engine is the clear winner. If #patterns matched per workload increases, the CPU-based automata processing engine's throughput decreases. On the other hand, the FPGA-based automata processing engine lacks the memory spilling option; hence, it fails to accommodate an entire automata if it does not fit into FPGA's logic fabric. In the best-case scenario, the CPU has a 4.5x speedup over the FPGA, while for some benchmarks, the FPGA has a 32,530x speedup over the CPU.
    3. Daehyeok Kim, Nikita Lazarev, Tommy Tracy, Farzana Ahmed Siddique, Hun Namkung, James C Hoe, Vyas Sekar, Kevin Skadron, Zhiru Zhang, and Srinivasan Seshan, "A Roadmap for Enabling a Future-Proof In-Network Computing Data Plane Ecosystem", arXiv preprint arXiv:2111.04563, 2021.
      Abstract
      As the vision of in-network computing becomes more mature, we see two parallel evolutionary trends. First, we see the evolution of richer, more demanding applications that require capabilities beyond programmable switching ASICs. Second, we see the evolution of diverse data plane technologies with many other future capabilities on the horizon. While some point solutions exist to tackle the intersection of these trends, we see several ecosystem-level disconnects today; e.g., the need to refactor applications for new data planes, lack of systematic guidelines to inform the development of future data plane capabilities, and lack of holistic runtime frameworks for network operators. In this paper, we use a simple-yet-instructive emerging application-data plane combination to highlight these disconnects. Drawing on these lessons, we sketch a high-level roadmap and guidelines for the community to tackle these to create a more thriving "future-proof" data plane ecosystem.
    4. Muhammad Hussain Mahdi, Nafisa Anzum, Farzana Ahmed Siddique, Mohammad Rashidujjaman Rifat, Kazi Shahidullah, and A. B. M. Alim Al Islam, "A Tale of Institutional Education in Bangladesh: Students' Perspective", ICCIT, 2016.
      Abstract
      Education, i.e., the backbone of a nation, encompasses a variety of role players and stakeholders among which students are, perhaps, the most important one. However, analyzing students' feedback on institutional education system from a macro level is yet to be done in the literature. To address this issue, in this paper, we conduct a study on different perspectives of institutional education based on students' feedback. Here, we mostly focus on the institutional education in Bangladesh. Our study is based on the data collected from the students through both on-line and offline surveys. We analyze the collected data to dig out various key aspects such as appropriateness of educational contents, relationship between teachers and students, and extents of malpractice in the institutional education. Additionally, we attempt for identifying different personalities who exhibit significant influence on the students. Our study reveals a number of key findings that may facilitate effective reformation and enhancement of the current educational system under focus.

Course Projects

Security Implications of Value Prediction
For my hardware security course project, I designed and implemented threat models to attack one of the microarchitectural optimizations called value predictor. The hypotheses for the threat model was, existing value predictors are susceptible to targeted mis-prediction, and therefore can be mapped directly to the Load Value Injection (LVI) type attacks. For the hardware simulator, Gem5 has been used in this project.
Gem5, x86 Assembly
RISC-V Processor
Implemented a basic RV32I processor for the Computer Organization and Design course project. The processor uses single issue pipelining. Static branch prediction (predict branch as not taken) has been used to handle control hazard. In order to handle structural hazard, a memory arbiter has been implemented and used. For handling data hazard, a register tracker has been implemented and used. VHDL has been used for the implementation, ModelSim has been used for design simulation and Precision Synthesis for design synthesis.
VHDL, ModelSIM
Simple Shell
As a part of my graduate operating systems course, I implemented linux shell functionality using POSIX. I used C++ for the implementation. The shell functionality includes: executing commands, single input/output redirection, and pipelining
C++
Threads & Barrier
Implemented a parallel, binary reduction algorithm to find the maximum number in a given list. For N numbers, the program uses log2(N) threads to cooperatively determine the maximum number in the list. One of the challenging part of the project is, no new threads have been spawned in each round - threads have been reused in all the rounds. Besides, in order to ensure synchronization among the threads, a barrier has been implemented using posix binary semaphore.
C++
FAT32
Implemented a simplified C API for read-only operations on FAT32 files and directories.
C++
Hole Punch
Implemented C APIs to address the issue of communicating with a client which is hiding behind firewall or NAT. As the client is not publicly accessible, built an external port forwarding mechanism similar to ssh reverse port-forwarding and SOCKS without the encryption overhead. This mechanism circumvents the restrictions of NAT and firewall and extablishes the connection with outside port.
C

A Few Accomplishments

While my professional journey so far was not a smooth one, I am blessed to have bagged a few awards and scholarships!

Outstanding Graduate Teaching Award

The Department of Computer Science, University of Virginia, presents awards to the graduate and undergraduate students in different categories. I got the end of the year (2021-2022) award in the category outstanding graduate teaching.

Student Travel Grant

Computing Research Association-Women (CRA-W), USA awarded the travel grant for participating in the CRA-W Grad Cohort Workshop 2020.

ICCIT Confference Award

Our paper titled A Tale of Institutional Education in Bangladesh: Students' Perspective got the ICCIT, 2016 conference award in the track ITS: Information Technology and Systems.

Most Significant Contributor of The Year

I volunteered as a webmaster for creating the very first webpage of the BWCSE. This helped to present the activities of the BWCSE to the outside world, as a result BWCSE presented me the Most Significant Contributor of The Year, 2014 award.

Anita Borg Student-Faculty Scholarship

I have received this scholarship during my undergad in the year 2014. Because of this scholarship I was able to attend the Grace Hopper Celebration of Women in Computing (GHC), Phoenix, Arizona, USA, October 2014. This was the very first time an undergrad student from Bangladesh got this scholarship.

Board Scholarship

I got this scholarship from the Chittagong, Bangladesh Education Board for my outstanding performance in the secondary school board examination.

Junior Scholarship

I got this scholarship from the Chittagong, Bangladesh Education Board for my outstanding performance in the junior school board examination.

Volunteer Works

A couple of volunteer organizations I have been involved with are Bangladeshi Women in Computer Science and Engineering (BWCSE) and Association of Bangladeshi Students at UVA.
I am always looking forward to getting involved with volunteer organizations working on mental health, women in computer science, and climate change.
Feel free to reach out to me at farzana at virginia dot edu if you want an extra hand for your organization or just chat!

Mentor
Computer Science Department Graduate Student Group at the University of Virginia
Mentoring a first year PhD student at the CS department of UVA.
2022 - present
Media Chair
Association of Bangladeshi Students at UVA
Did photography and videography at the events arranged by Association of Bangladeshi Students at UVA.
2021 - 2022
Mentor
Bangladeshi Women in Computer Science and Engineering (BWCSE)
Worked as a mentor for couple of undergrad female students.
2017 - 2018
Event Director
Bangladeshi Women in Computer Science and Engineering (BWCSE)
Planned and organized events such as robotics competition, faculty/alumni talks, etc.
2015 - 2016
Webmater
Bangladeshi Women in Computer Science and Engineering (BWCSE)
Designed and developed the webpage for the BWCSE.
2014 - 2015

Some Fun Facts About Me!

My fun facts do not fall under the general "fun" spectrum.

I love doing photography, especially macro & landscape. A sneak peek of my photography can be found here. Besides, I enjoy doing yoga, and I am an avid follower of yoga with Adriene. Sometimes I solve random programming problems for fun and to keep in touch with the algorithms. Well, dynamic programming is still a nightmare to me!

-->