rcurtin_irc changed the topic of #mlpack to: mlpack: a scalable machine learning library (https://www.mlpack.org/) -- channel logs: https://libera.irclog.whitequark.org/mlpack -- NOTE: messages sent here might not be seen by bridged users on matrix, gitter, or slack
<RishabhGarg108Ri> @ryan:ratml.org won't the `break` and `continue` statements affect the parallelization?
<RishabhGarg108Ri> We have them in our dimension gain calculation loop
<rcurtin[m]> Yeah, if we are parallelizing we'll have to remove the break at least. I think the continue is just fine (that thread will just end that iteration and move to the next one I think)
<RishabhGarg108Ri> Yeah, that's what I thought. If we encounter a break condition, then we have to terminate all the threads
<RishabhGarg108Ri> I was reading this discussion and If I do some low level stuff as they have done in the accepted solution, then will it work correctly without openmp ?
<rcurtin[m]> You'd have to put the `omp_get_thread_num()` inside an `#ifdef` so it's only used if OpenMP is available
<rcurtin[m]> but in any case, I think it's fine to simply remove the `break` optimizations; I suspect they don't make that much difference in practice anyway
<rcurtin[m]> to state that differently, I think that the gains from OpenMP will outweigh any gains we might have seen with the `break` :)
<heisenbuugGopiMT> @shrit:matrix.org I used Raspberry Pi Imager to get ubuntu server on the sd card and connected the raspberry pi to the wifi router via ethernet cabel.
<heisenbuugGopiMT> Now, how can I get the `IP` of pi?
<zoq[m]> <heisenbuugGopiMT> "Now, how can I get the `IP` of p" <- From the wifi router dashboard?
<heisenbuugGopiMT> Some commands were suggested on the tutorial page, but those didn't work. I will try from the wifi router dashboard.
<zoq[m]> Do you have a display attached?
<zoq[m]> in which case `ip address` will show you the ip.
<heisenbuugGopiMT> Nope, no display attached.
<shrit[m]> you can use avahi to discover devices on thr network
<say4n[m]> heisenbuug (Gopi M Tatiraju): did you set it up such that it connects to your WiFi network on first boot. I have only used raspbian on the pi and to make it connect to an access point, you have to add the SSID and password to wpa_supplicant.conf on your boot partition. Also to enable ssh, you have to make an empty file titles ssh in the boot partition before first boot.
<say4n[m]> The headless setup procedure is described here, albeit for raspbian: https://www.raspberrypi.org/documentation/computers/configuration.html#setting-up-a-headless-raspberry-pi
<say4n[m]> Ok looks like it is more or less the same procedure for Ubuntu too: https://fossbytes.com/raspberry-pi-headless-setup/
<shrit[m]> I mean Ubuntu has SSH already activated
<say4n[m]> Ah cool, I did not know that :)
<say4n[m]> I think the fastest way might be to just plug in an ethernet cable.
<shrit[m]> I think he has already done that
<say4n[m]> Ah crap, I missed the message where it was already mentioned that it is connected via ethernet
<say4n[m]> Hahahha
<say4n[m]> Yes I just scrolled up
<heisenbuugGopiMT> Sorry, actually I forgot my wifi router dashboard password. But I got it now.
<heisenbuugGopiMT> Once I got the IP, it's simple.
<jonpsy[m]> pytorch is tough.. :(
<shrit[m]> which part is tough?
<jonpsy[m]> the way they manipulate tensors
<heisenbuugGopiMT> @shrit:matrix.org The solution suggested by conrad is working. It was not working earlier due to some changes that I made while testing.
<heisenbuugGopiMT> I am mostly done indenting the files as well.
<shrit[m]> Perfect
<shrit[m]> Good to hear 👍️
<shrit[m]> Let me know when you push the modification
<heisenbuugGopiMT> Yup, just some more indentation issues and there are some places where we can convert some part of code to functions as it is repetitive.
<shrit[m]> Let me know if you face any difficulties, but I think there is nothing left
<heisenbuugGopiMT> Yup. Just a bit of refactoring and going through the code again.
<heisenbuugGopiMT> Also what about the failing test cases? Those are not related to parser, but should we look into them?
<heisenbuugGopiMT> * Also what about the failing builds on CI? Those are not related to parser, but should we look into them?
<shrit[m]> Yeah, there are Windows one, which is classic, it is related to the out of heap space
<heisenbuugGopiMT> Okay, once I push the code I will try solving them.
<shrit[m]> rcurtin: Do you remember how we handled this last year? I have faced the same issue when I removed boost program options
<heisenbuugGopiMT> Also if I understand correctly, if we remove `boost::spirit` I believe that we don't have to link against anything now, right?
<shrit[m]> We do not link with anything now, boost::spirit is header only
<shrit[m]> We still have libmlpack.so
<heisenbuugGopiMT> Oh, so we still need libmlpack.so?
<shrit[m]> Yes,
<heisenbuugGopiMT> So we don't need to make any changes in CMake files as of now?
<shrit[m]> No, we do not have to make any changes.
<heisenbuugGopiMT> Okay, I will go through all the comments on PR and make sure nothing is left.
<heisenbuugGopiMT> I am deleting the load function for spmat now as we combined it into one.
<shrit[m]> Did you find any difference?
<shrit[m]> between the two load functions
<heisenbuugGopiMT> Yea, there are some. But tests are passing and I also loading some sp_mats and it's working well.
<rcurtin[m]> I think the first thing to check would be that boost::spirit is not included anywhere
<heisenbuugGopiMT> In sp_mat we are using `extension` to decide load_type. As there was no `inputLoadType` parameter in `sp_mat` version.
<shrit[m]> It is only included in load_csv.hpp
<shrit[m]> I have searched the entire code base
<shrit[m]> We have removed that already
<heisenbuugGopiMT> Yup.
<heisenbuugGopiMT> I ran this command
<heisenbuugGopiMT> and got this as output https://pastebin.com/0wUz5bsa
<heisenbuugGopiMT> `grep -R "boost"`
<heisenbuugGopiMT> But I did it in `mlpack/core/data/`
<shrit[m]> you can do grep -nr "boost/spirit"
<heisenbuugGopiMT> no output
<heisenbuugGopiMT> So that means we don't have it.
<shrit[m]> yes
<shrit[m]> you have already remove it
<heisenbuugGopiMT> Do we plan to remove boost completely in the future?
<shrit[m]> yes
<heisenbuugGopiMT> we have a lot of `boost` here...
<shrit[m]> There was much more
<shrit[m]> I have already opened a pull request to remove boost any
<shrit[m]> we only have boost::math that left
<heisenbuugGopiMT> wow, thats great.
<heisenbuugGopiMT> Once this is wrapped up completely I will also start to work on removing `boost`.
<shrit[m]> If you would like to help, you can write an implementation of Digamma and Trigamma functions
<shrit[m]> There are the only two functions that we are using from boost
<heisenbuugGopiMT> Okay. I will start working on implementing those after this pr.
<heisenbuugGopiMT> No better way to learn. It will be fun to dive into some math.