Skip to content

Instantly share code, notes, and snippets.

View amitmurthy's full-sized avatar

Amit Murthy amitmurthy

  • Bangalore, India
View GitHub Profile
np = 8
nt = 10000
pids = addprocs(np)
using SyncObjects
ts = tspace()
#Launch processes on each worker that simulates CPU intensive / blocking stuff for a random amount of time
@amitmurthy
amitmurthy / ptest.jl
Last active August 29, 2015 14:10
ptest.jl
const A = randn(1000, 1000);
const numx = 10_000;
const v = randn(1000, numx);
addprocs(4)
@sync begin
let A2=A, v2=v, numx2=numx
for p in workers()
@spawnat p global const A = A2;
type DArray{T,N,A} <: AbstractArray{T,N}
dims::NTuple{N,Int}
chunks::Array{RemoteRef,N}
pmap::Array{Int,N} # pmap[i]==p ⇒ processor p has piece i
indexes::Array{NTuple{N,UnitRange{Int}},N} # indexes held by piece i
cuts::Vector{Vector{Int}} # cuts[d][i] = first index of chunk i in dimension d
function DArray(dims, chunks, pmap, indexes, cuts)
# check invariants
if size(chunks) != size(indexes)
type DArray{T,N,A} <: AbstractArray{T,N}
dims::NTuple{N,Int}
chunks::Array{RemoteRef,N}
pmap::Array{Int,N} # pmap[i]==p ⇒ processor p has piece i
indexes::Array{NTuple{N,UnitRange{Int}},N} # indexes held by piece i
cuts::Vector{Vector{Int}} # cuts[d][i] = first index of chunk i in dimension d
function DArray(dims, chunks, pmap, indexes, cuts)
# check invariants
if size(chunks) != size(indexes)
@amitmurthy
amitmurthy / OSX Travis Build Failure
Created April 2, 2015 03:50
OSX Travis Build Failure
travis_fold:start:system_info
Build system information
Build language: cpp
travis_fold:end:system_info

travis_fold:start:git.checkout
travis_time:start:21ded7df
ERROR: LoadError: On worker 2:
LoadError("/tmp/julia/share/julia/test/profile.jl",13,ReadOnlyMemoryError())
in remotecall_fetch at multi.jl:729
in remotecall_fetch at multi.jl:732
in anonymous at task.jl:1421
while loading /tmp/julia/share/julia/test/runtests.jl, in expression starting on line 5
*** glibc detected *** /tmp/julia/bin/julia: free(): invalid pointer: 0x086623c8 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x74f82)[0xb6834f82]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb670951f]
test distribute
> test default distribute
> test distribute with procs arguments
2 facts verified.
test DArray equality
> test isequal(::Array, ::DArray)
> test copy(::DArray) does a copy of each localpart
2 facts verified.
test @DArray comprehension constructor
> test valid use of @DArray
@amitmurthy
amitmurthy / sockecho.jl
Created November 12, 2015 06:57
Echoing back 64 bytes on a socket connection
addprocs(1)
@everywhere begin
function server()
local s
local a
try
s = listen(9300)
while true
a = accept(s)
@amitmurthy
amitmurthy / mapshmem.jl
Last active December 16, 2015 18:28
shmem and mmap
using Base.FS
# Below constants are vaid for Ubuntu. May be different for OSX
const PROT_READ = 0x01
const PROT_WRITE = 0x02
const MAP_SHARED = 0x01
type ShmemVar
v_name::Symbol
v_type::Type
@amitmurthy
amitmurthy / gist:6218188
Last active December 21, 2015 00:09
valgrind output with MEMDEBUG for issue # 4016
==9578== Invalid write of size 8
==9578== at 0xD54A1AD: dlasq2_ (in /home/amitm/Work/julia/julia/usr/lib/libopenblas.so)
==9578== by 0xD549A79: dlasq1_ (in /home/amitm/Work/julia/julia/usr/lib/libopenblas.so)
==9578== by 0xD52AD17: dbdsqr_ (in /home/amitm/Work/julia/julia/usr/lib/libopenblas.so)
==9578== by 0xD549018: dlasdq_ (in /home/amitm/Work/julia/julia/usr/lib/libopenblas.so)
==9578== by 0xD527B46: dbdsdc_ (in /home/amitm/Work/julia/julia/usr/lib/libopenblas.so)
==9578== by 0xD3ED52A: zgesdd_ (in /home/amitm/Work/julia/julia/usr/lib/libopenblas.so)
==9578== by 0x40B3726: ???
==9578== by 0x40B2DBA: ???
==9578== by 0x40B287A: ???