I have a complex problem that I'm hoping has a simple answer. I have a very large dataset (~3.5GB) that I need to parallel process on a multi-core machine. In trying to use threads, I found that Perl creates a copy of the interpreter for each thread. This is a giant problem with a dataset this large, because it copies the entire contents of the memory into each thread, thus I run out of RAM very quickly. On linux, kernel threads allow the processes to share the same memory allocation, and it is up to you to lock appropriately using semaphores or whatever. Is this possible in Perl, or is there a strategy I can use that won't involve copying the entire contents of memory into each iThread? I would hate to have to go use Java or C to do this. Up until now, I was convinced Perl was unstoppable, please prove me right. :)
In reply to Using kernel-space threads with Perl by aberman
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |