
Hello Antony, I’m Francisco Tapia from the Sort library. In August you sent a message asking for help with students’ graduation projects. I don’t know if what I can offer fits what you are looking for, nor am I familiar with the procedures for supervising such projects. In any case, it’s as simple as giving them my email and mentioning it. Then they can decide. Twelve years ago, I proposed a library for Boost, which had no acceptance, I suppose due to my clumsiness and my lack of knowledge of the procedures. The idea is to implement concurrent set, multiset, map, and multimap structures, so that several threads can work simultaneously on these structures quickly, conveniently, and safely. The underlying algorithm is red-black balanced trees, but enhanced with an additional field that allows us to access the nodes by their position, like in a concurrent vector. The difference with a concurrent vector is that positional access, like access by value, is an O(log N) operation. The advantage is that inserting or deleting elements that are not the first or the last is also O(log N), not O(N) as in concurrent vectors. So, if I have 100 nodes in a tree and 10 threads, I can assign thread 0 the positions [0, 9], thread 1 [10,19], and so on. It is 100% STL-compatible. Internally, it has a spinlock (spinlock_nr1w) that allows several threads to perform n read operations simultaneously, but only 1 write operation at a time. Performance is similar to STL. The work to be done has two levels, one simple and one more complex. - In the simple one, the task would be to replace the mutex with a more modern one that I will provide, and to design parallel algorithms for destroying and copying the trees, to make this process much faster. - In the next level, everything above would be needed, but also the balancing algorithms would have to be reviewed. The existing ones work well, but they can be improved. In either case, this is work that could be of interest to C++ compilers (GCC, CLANG, VC, OneAPI …) because I believe none of them currently have concurrent algorithms for set, multiset, map, and multimap. What I have done is available in the repository https://github.com/fjtapia/countertree_2.0 .I would also provide the modern and optimized code for the spinlock_nr1w. As I mentioned at the beginning, if someone is interested, let them write to me and we can discuss it in more detail. Sincerely, Francisco Tapia fjtapia@gmail.com El mar, 19 ago 2025 a las 9:05, Antony Polukhin via Boost (< boost@lists.boost.org>) escribió:
вт, 12 авг. 2025 г. в 16:25, René Ferdinand Rivera Morell via Boost <boost@lists.boost.org>:
On Mon, Aug 11, 2025 at 10:01 AM Antony Polukhin via Boost < boost@lists.boost.org> wrote:
Do you have any Boost related projects that could be done by students?
Depends. I have tooling (which includes some C++ libraries) related work that is adjacent to Boost. But it really depends on what students are expected to accomplish and are interested in. I'm guessing these are undergrad Senior students right? What C++ knowledge level would they be
at?
Right. However the knowledge level even between the students of the same course is quite different, so a mentor should choose a student wisely.
I'm thinking we need potential mentors to create a database of tasks and related knowledge levels to accomplish them so that someone can match students to tasks.
+1. With such a list any student can choose a task depending on its interests. It may be worth highlighting that the tasks require undergraduate Senior students.
We can reuse github for a database of tasks. Just make some special label for all the Boost libraries and a web page to view it. Looks like github provides the required API
https://docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#list-org... Each library could then add that label to a task that fits students
-- Best regards, Antony Polukhin _______________________________________________ Boost mailing list -- boost@lists.boost.org To unsubscribe send an email to boost-leave@lists.boost.org https://lists.boost.org/mailman3/lists/boost.lists.boost.org/ Archived at: https://lists.boost.org/archives/list/boost@lists.boost.org/message/J2NICUUO...