freenode/#lisp - IRC Chatlog
Search
17:52:45
PJ_
I am considering learning common lisp, as I really like the lisp paradigm. However, I am starting to do a lot more high-level GPU work, what are the recommended GPU options for common lisp that are readily maintained? Also is openacc a possibility?
17:57:26
PJ_
not really rendering, ie not gaming/images etc. More compute on the GPU, linear algebra and other big compute
17:59:26
TMA
PJ_: you need to use GPU driver libraries that have C (or C++) in mind. anything else is an uphill battle -- and that includes the popular python bindings for the machine learning on GPU
18:02:07
PJ_
@TMA thanks, that seems to be my main barrier to entry. Currently doing a lot of deeplearning, machine learning and general data analysis in python. This is great, but I would like to
18:02:53
TMA
PJ_: it can be done in common lisp, the interactive development is certainly great, but it has its cost too
18:03:36
PJ_
use the expressiveness of lisp in some cases. Dabbled in clojure and I liked the lisp way :), but GPUs are becoming more and more prevalent.
18:08:37
TMA
PJ_: nowadays it is similar to the driver support early this century: if you wanted to use the hardware, you had to use microsoft windows or write your own. today the gpu support for non-c/c++ languages is the same: write your own;; it has been done already, but do not expect mainstream-level support available
18:30:18
pjb
(logior #b0111 #b1110) #| --> 15 |# and (bit-ior #*0111 #*1110) #| --> #*1111 |# are basically O(1).
18:31:22
PJ_
@pjb cl-cuda looks great, it does seem more lower level though, if there isn't a higher level alternative, then it seems that may be the way to go. Just more stuff to learn :)
18:42:06
phoe
I have a graph described by a list of edges. Which library-and-function should I use to check if the graph contains cycles?
18:47:36
jasom
PJ_: you may also consider looking at clasp, which was specifically designed for allowing lisp to drive C++ libraries (I've not used it myself though)
18:51:20
kaun
Yeah, is there a CL function to detect the presence of a cycle? Maybe whatever *print-circle* nil would use?
18:58:50
pjb
(cl:list-length '(a b . #1=(c d e))) #| --> 5 |# (com.informatimago.common-lisp.cesarum.list:list-lengths '(a b . #1=(c d e))) #| --> 5 ; 0 |#
18:59:33
pjb
(cl:list-length '(a b . #1=(c d e . #1#))) #| --> nil |# (com.informatimago.common-lisp.cesarum.list:list-lengths '(a b . #1=(c d e . #1#))) #| --> 2 ; 3 |#
18:59:54
pjb
so you may prefer list-lengths, if you need to know where the cycle begins, and how long it is.
19:00:50
pjb
phoe: it will depend on whether you want to find the cycles, or just to know if there are some.
19:04:21
slyrus_
man, reading PEP 572 I'm glad I use a language that doesn't distinguish between expressions and statements.
19:04:58
pjb
(defun has-cycles-p (nodes lessp) (/= (length (topological-sort nodes lessp)) (length nodes)))
19:06:51
pjb
slyrus: keep reading and try: (if (let ((match (match-re …))) (report-match match) (setf match (find-next match)) match) (do-it)) ;-)
19:13:26
jeosol
is anyone here running a cl-web application with multiple users (requiring management of user permissions, control access, etc)? there is a preference for django but I will prefer CL is possible. This is will be production use.
19:35:00
sukaeto
since it's easy to use different backends with clack, it makes development convenient
19:35:24
sukaeto
you can just start a background thread using hunchentoot in your REPL, but set up workers using fcgi in prod
20:19:39
aeth
White_Flame: Not human involvement at runtime, human involvement at programmer time. I meant the user of the library, not the user of the program.
23:07:33
jasom
Josh_2: Parenscript macros are common lisp, and it is a DSL for generating javascript.
1:59:08
blep-on-external
ACTION uploaded an image: lukd.png (106KB) < https://matrix.org/_matrix/media/v1/download/ponies.im/7b926b5e35069d2e9bca6fa0e6fe5605 >
4:51:34
beach
A new version of the specification of the SICL memory allocator is now available in case someone feels like reviewing it: http://metamodular.com/allocator.pdf