Boost logo

Boost :

From: David Bellot (david.bellot_at_[hidden])
Date: 2020-03-11 02:41:15


Hi Swornim,

thanks for contacting me regarding the GSoC project.
The C++20 project is part of a larger work on how we can modernize uBlas
codebase. It's getting really old now, using concepts from C++98
essentially.
It's pretty open and I wish students will be able to come with new ideas on
top of it. Let's talk about what I have in mind off-line (email is the best
as I'm based in Australia and a bit jet-lagged with respect to the rest of
the world :-D ).

Indeed, if we want to prove that upgrading uBlas to a new standard is
necessary, we have to prove that even on a single core, we're doing things
much faster. Of course, other are taking care of joining uBlas with OpenCL
or GPU, etc...
I think we can partly get rid of the complexity of expression templates by
using the constexpr, move and other modern mechanisms much more now. Though
expression templates are still very powerful and can also be imrpoved
thanks to Boost::YAP (see Cem Bassoy's work) and the new STL library
(starting from C++11 and up to C++20).
Two major topics:
1- improve the single core speed of the library
2- make the code much more readable and extendable.

The second point is of uttermost importance as we want to add a lot of new
simple functions, ala R or Python/numpy. There are a lot of things I can do
in one line in R, but I cannot in uBlas. It has to be very complicated.
However, nothing prevents C++ of being as simple, especially, if we use
more recent C++ techniques.

So as you can see there is a lot to cover.

I propose that you start writing the competency test and then you start
working on your proposal. I will help you improving it (as I do with all
the other motivated students. Competition is hard this year :-D )

>From now on, let's take it off-line by email.

Cheers,
David

On Wed, Mar 11, 2020 at 10:29 AM swornim baral via Boost <
boost_at_[hidden]> wrote:

> Hi David,
> Thank you for adding the projects ideas for Boost.uBlas. I am interested in
> being a candidate for implementing Project 1: "Convert uBlas to C++20
> technologies". I am currently reading the "C++ High Performance: Boost and
> Optimize the Performance of your C++17 Code" book for coming up with ideas
> to simplify the code base for uBlas. Please recommend any other resources
> that I could use to broaden my understanding about C++20 features. The
> second bullet under the project description mentions about improving the
> speed of uBlas on single core, but doesn't mention any specific operations,
> so are there any specific operations that you have in mind for optimizing?
> Thank you for helping!
>
> Regards,
> Swornim Baral
>
> On Fri, Mar 6, 2020 at 1:26 AM David Bellot via Boost <
> boost_at_[hidden]>
> wrote:
>
> > Excellent question. In fact, uBlas in mainly C++98 with a bit of C++11.
> > It's an old code base which need to be refreshed. So as you correclty
> > guessed, I want to bring in uBlas more modern C++ technology, up to C++20
> > and where they make sense.
> > Backward compatibility is important but I think we need to improve this
> > library anyway and C++98 is a bit ... huh... outdated now.
> >
> > During the project, the student will have to prove that each feature
> brings
> > a real benefit, generally in term of speed as far as uBlas is concerned,
> or
> > in term of ease of implementation for example.
> > But if having "ranges" of "spaceships concepts" multiply the speed by 10,
> > then yes C++20 will be required. OK Just kidding :-D
> >
> > On Fri, Mar 6, 2020 at 2:55 AM Vinnie Falco <vinnie.falco_at_[hidden]>
> > wrote:
> >
> > > On Wed, Mar 4, 2020 at 3:43 PM David Bellot via Boost-users
> > > <boost-users_at_[hidden]> wrote:
> > > > The list of projects is here:
> > > https://github.com/boostorg/wiki/wiki/Google-Summer-of-Code%3A-2020
> > >
> > > Are you saying that Boost.uBlas will require C++20? Or does this mean
> > > it will just take advantage of select, relevant C++20 features when
> > > available, when doing so results in a meaningful benefit to users?
> > >
> > > Thanks
> > >
> >
> > _______________________________________________
> > Unsubscribe & other changes:
> > http://lists.boost.org/mailman/listinfo.cgi/boost
> >
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk