freenode/#lisp - IRC Chatlog
Search
19:51:56
phoe
jeosol: looks like https://github.com/Shinmera/oxenfurt - or that's what his github says
19:57:48
jeosol
hey guys, need some help and recommendations on cheap cloud instances. i have a challenge due in 3 weeks. I need to run 250 parallel jobs (each taking about 20 mins) in one iteration, and repeat for 50 iterations. This makes one case. I need to run about 5-10 of these cases within 3 weeks
19:58:22
jeosol
I am running lisp code, I see your point, not sure if anyone is using lisp on the cloud that is why I asked
20:10:04
p_l
jeosol: well, it will be probably easiest if you can reliably package your code into something quickly deployable (docker?)
20:10:39
p_l
jeosol: then figure out how to use cloud provider's APIs to do the work quickly with minimum fumbling on the servers
20:12:01
jeosol
The small tests I did, take about 20mins, on my 64GB machine OpenSuSe, some can take 30 mins
20:12:33
jeosol
no @p_l, they are SIMD, I need to perform the same workflow repeated with different data F(X), with X changing between calls
20:13:10
jeosol
Yes, I need to gather the results back, a single result that I feed into the program, and that ends one-batch, on to the next
20:14:19
jeosol
I am running as threads using lparallel, but for all cases, to get done, if I can push 250 runs at once, get results back in approximate 30 mins, I can finish a case in about a day
20:15:02
jeosol
Good question, I have the problem crash most times when dealing with large CLOS objects. So I start SBCL with large memory size.
20:15:52
jeosol
the bottle neck is not within lisp, I make a call to another software/blackbox after writing input files for that program, do a system call, wait for the call to finish, then read the output file
20:16:47
jeosol
lisp code is the layer that manages all logic, processing etc, but that call is the most expensive part. I can't make that part go any faster
20:18:14
jeosol
no communication at all between the runs. I start slime, run the top-level application, which then runs the job
20:19:14
jeosol
then the threading functionality takes that function with different input to creates the threads
20:19:23
p_l
Cause well, I can help you get somewhere around $5/day for 16 core, 104GB machine, if your software could survive random stops and preferably finish within 24h per execution
20:21:38
p_l
from my understanding, you have a pattern of <N*lisp threads> -> 1 blackbox -> <N*lisp threads>
20:25:32
jeosol
my whole setup is in linux, but that program is a windows program, so I cheat by running it with wine
20:30:58
p_l
if it's a one off job, building a deploy image (docker might be good option) and then grabbing pretty much any cloud provider with big enough options should be good enough
20:33:43
p_l
it's important to get a grasp on resource usage, especially as different cloud providers have different "weights" to which resource costs how much
20:34:39
p_l
and then nom whatever money you have left on memory which you'll use to buffer the slow EBS ;)
20:35:33
jeosol
I see, when I asked the question before, I was told AWS is expensive, and may be able to get a reasonable size box for 30 a month on hivevelocity or sth link that.
20:36:30
jeosol
I think 250 jobs at once may be too much, if I can leave with say batches of 50, that may not be too bad.
20:37:40
p_l
I like Google Cloud Platform not just for the fact that it's usually cheaper than AWS, but also because their default networking mode leaves everyone else in the dust
20:37:40
jeosol
p_l: I see. realiability is also important as I don't have enough time. I am extensively testing on my box, if I move somewhere I don't want to job to fail as least on the LISP+SBCL side
20:38:29
p_l
if you make it into something that can be quickly deployed without worrying about setting the OS etc. you'll have much better time testing and setting things up
20:39:58
p_l
having well-done package is better than slapping together a docker container, but I assume you want to get the job done fast and that it's not going to be some production monster (and even then it can be fixed)
20:40:50
jeosol
I will like to have it in the cloud at some point with robust solution, web app, etc, but for now, I want to just run the cases for the challenge, so a quickly dirty solution is better
20:41:34
jeosol
but if well-done package is a few days, and will save headache, then it's the way to go
20:41:56
p_l
if you handle the packaging part well enough that running the code can be dropped to the level of "one line to execute on nearly any random Ubuntu install"
20:45:08
jeosol
by packing you mean the whole shebang, sbcl, blackbox, etc, and possible some executable generated to run on command line?
20:45:49
p_l
(you don't need to upload your image to Docker Hub or anywhere else, you can export it into tarball, upload to server then import
20:46:13
jeosol
that's the best option. usually it was always a pain for me, moving files, installing, etc
20:46:57
p_l
your program sounds like straightforward compute thing, so packaging and setup is going to dominate workload
20:47:30
p_l
and if you really want to get cheap on the cloud, making your workload easily transferable, and making it so that you only actually run when you have your program running, is important
20:48:50
jeosol
you are 100% right. is the packaging and setup that is the most work. I tried to make everything self contained. I only need sbcl, quicklisp, ..., blackbox, and python libs. but I have been doing all this by hand
20:49:36
p_l
and docker by packaging the whole of a linux distro will also make it easier to deal with dependencies you might have missed (wine? ;D)
20:53:40
jeosol
not really, if I understand. No GPU/Cuda or anything. I only make plots to see results sometimes, but I disable all that when doing the heavy workload
20:54:37
p_l
jeosol: you might not notice the blackbox calling graphic-dependant functions (it might not show a visible window for one)
20:57:55
jeosol
it ran ok, but usually i get some random windows socket related error at start of call. fixme:heap:RtlSetHeapInformation 0x240000 0 0x23fd40 4 stub, fixme:winsock:convert_socktype_w2u unhandled Windows socket type 5, etc
21:06:51
jeosol
p_l: thanks. I can't get you beer if you drink, but the pointers and help are appreciated.
21:09:07
jeosol
I will probably still looking to those more robust options later, but my primary need is just getting the code to run. I am testing now to make sure no problems with Lisp/SBCL end of things
1:18:25
inaimathi
Can anyone point me to a quick example for how to use `qlot` to install a package in a local `quicklisp` instance?
1:19:17
inaimathi
I'm trying `(qlot:with-local-quicklisp (#P"/home/inaimathi/.cl-notebook/") (qlot:install :skippy))` and getting "Component not found" errors