Thanks to visit codestin.com
Credit goes to github.com

Skip to content
You must be logged in to sponsor orxfun

Become a sponsor to Ugur Arikan

Uğur Arıkan

I am an operations research (OR) scientist, interested in optimization, algorithms and systems thinking & design; and a rust developer πŸ¦€.

Working on rust & OR and concurrency & parallelization in rust, and various exciting side topics.

| github | email | discord | linkedin | cv | crates |

❀️ I like

I am enthusiastic about all things OR: decision science, mathematical optimization, algorithms, networks, routing, multiobjective decision making and decision making under uncertainty. I enjoy computation a lot, working on efficient concurrent data structures and parallel computation. Least but not the least, I love rust β€οΈπŸ¦€.

🎯 𝙸'πš– πšžπš™ 𝚝𝚘

OR & rust

Two of the big challenges in applying OR in practice might be (i) to explain complex solutions to decision makers and (ii) to address uniqueness or custom requirements of each real life problem. I am not yet actively working on (i) but I find using LLMs for this purpose very promising and watching the advances closely.

For the latter, we are seeking flexible tools which allow for conveniently representing different sets of real life constraints. Although speed is an important feature in optimization tools, we even consider sacrificing performance to be able to deliver faster.

Imo, speed and type system of rust makes it the perfect language for rich and flexible optimization algorithms. It allows us to compose real life constraints as if we are working with a dynamic high level language, while our solutions are performant and memory efficient. For more details on this fitness, you may see the following article and talk.

My work on OR & rust goal is currently split into two parallel streams:

  • Composable, flexible and efficient local search algorithms (orx-local-search). I will probably branch from this to focus specifically on vehicle routing algorithms.
  • An expressive, solver-agnostic, type-safe, macro-free, concise, performant and parallelized mathematical modeling tool (orx-math-model). You may see a prototype in c# below (zoom in πŸ”Ž).

knapsack

concurrency and parallel computing

I am working on a high performance, configurable and expressive parallel computation library in rust, orx-parallel. The crate is considerably mature, but also continuously improving with many new exciting challenges.

The journey to build a parallel computation crate involved developing pinned vectors (PinnedVec, SplitVec and FixedVec) and various concurrent data structures such as ConcurrentBag, ConcurrentOrderedBag, ConcurrentIter, ConcurrentRecursiveIter. While improving the parallel computation library, these data structures continue to evolve.

On the other hand, ConcurrentVec is developed without parallel computation in focus. It is designed to be the concurrent counterpart of the standard vec.

Connect

If you are interested in what I am interested, feel free to email, open an issue or contribute to the repos on github, or share your ideas at discord.

@orxfun

five for five star motivation

Featured work

  1. orxfun/orx-priority-queue

    Priority queue traits and efficient d-ary heap implementations.

    Rust 5
  2. orxfun/orx-tree

    A beautiful tree 🌳 with convenient, efficient, parallelizable growth, mutation and traversal features.

    Rust 8
  3. orxfun/orx-concurrent-vec

    A thread-safe, efficient and lock-free vector allowing concurrent grow, read and update operations.

    Rust 11
  4. orxfun/orx-parallel

    A performant and configurable parallel computing library for computations defined as compositions of iterator methods.

    Rust 279
  5. orxfun/orx-local-search

    placeholder: local search

    Rust 3
  6. orxfun/orx-closure

    An explicit closure with absolute seperation of the captured data from the function.

    Rust 35

0% towards 5 monthly sponsors goal

Be the first to sponsor this goal!

Select a tier

$ a month

Choose a custom amount.

$5 a month

Select

support & motivate *

$50 a month

Select

support & motivate **

$100 a month

Select

support & motivate ***

$250 a month

Select

support & motivate ****