fix incorrect folder name for julia-0.6.x

Former-commit-id: ef2c7401e0876f22d2f7762d182cfbcd5a7d9c70
This commit is contained in:
2018-06-11 03:28:36 -07:00
parent 5e0e436e4e
commit 0e4acfb8f2
722 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
# This file is a part of Julia. License is MIT: https://julialang.org/license
struct RUsage
ru_utime_sec::Clong # user CPU time used
ru_utime_usec::Clong # user CPU time used
ru_stime_sec::Clong # system CPU time used
ru_stime_usec::Clong # system CPU time used
ru_maxrss::Clong # maximum resident set size
ru_ixrss::Clong # integral shared memory size
ru_idrss::Clong # integral unshared data size
ru_isrss::Clong # integral unshared stack size
ru_minflt::Clong # page reclaims (soft page faults)
ru_majflt::Clong # page faults (hard page faults)
ru_nswap::Clong # swaps
ru_inblock::Clong # block input operations
ru_oublock::Clong # block output operations
ru_msgsnd::Clong # IPC messages sent
ru_msgrcv::Clong # IPC messages received
ru_nsignals::Clong # signals received
ru_nvcsw::Clong # voluntary context switches
ru_nivcsw::Clong # involuntary context switches
end
function get_vmsize()
ru = Array{RUsage}(1)
ccall(:getrusage, Cint, (Cint, Ptr{Void}), 0, ru)
return ru[1].ru_maxrss
end
function run_mtest(name, testf)
print("Testing $name...")
for i in 1:2
print("priming process...")
testf()
end
vm1 = get_vmsize()
println("monitored run...")
testf()
vm2 = get_vmsize()
diff = vm2 - vm1
WARN = (diff > 1000) ? "<===================================== WARNING" : ""
println("Memory Test ($name) : VMSize difference : $diff KB $WARN")
end
function mtest_create_strings()
for i in 1:10^8
string("$i")
end
gc()
end
function mtest_remotecall_fetch()
for i in 1:10^5
remotecall_fetch(myid, 1)
end
gc()
end
run_mtest("create_strings", () -> mtest_create_strings())
run_mtest("remotecall_fetch", () -> mtest_remotecall_fetch())

View File

@@ -0,0 +1,185 @@
# This file is a part of Julia. License is MIT: https://julialang.org/license
# Run various networking tests checking to see how we perform under large loads
addprocs(1)
function test_connect_disconnect(exp)
print("Testing 10^$exp connect/disconnects:\n")
(port, server) = listenany(8000)
server_started = RemoteChannel()
server_exited = RemoteChannel()
client_exited = RemoteChannel()
@async begin
clients_served = 0
print("\t\t\t[SERVER] Started on port $(port), with PID $(getpid())\n")
put!(server_started, false)
while (clients_served < 10^exp)
close(accept(server))
clients_served += 1
end
put!(server_exited, true)
print("\t\t\t[SERVER] Finished serving $(clients_served) clients\n")
end
# Wait for the server
@spawnat(2, begin
take!(server_started)
print("[CLIENT] Connecting repeatedly to port $(port)\n")
for i in 1:10^exp
close(connect("localhost", port))
end
print("[CLIENT] Finished with 10^$exp connections\n")
put!(client_exited,true)
end)
fetch(client_exited)
close(server)
fetch(server_exited)
print("OK\n")
end
# Perform first test
test_connect_disconnect(5)
function test_send(exp)
(port, server) = listenany(8000)
@assert exp > 4
size = 10^exp
block = 10^(exp - 4)
print("Testing open, send of 10^$exp bytes and closing:\n")
server_started = RemoteChannel()
server_exited = RemoteChannel()
client_exited = RemoteChannel()
@async begin
print("\t\t\t[SERVER] Started on port $(port)\n")
put!(server_started, false)
serv_sock = accept(server)
bread = 0
while bread < size
serv_data = read(serv_sock, UInt8, block)
@assert length(serv_data) == block
bread += block
end
close(serv_sock)
print("\t\t\t[SERVER] Received 10^$(log10(bread))B of 10^$(exp)B\n")
put!(server_exited, bread)
end
@spawnat(2, begin
# wait for the server
take!(server_started)
print("[CLIENT] Connecting to port $(port)\n")
cli_sock = connect("localhost", port)
data = fill!(zeros(UInt8, block), Int8(65))
cli_bsent = 0
while cli_bsent < size
write(cli_sock, data)
cli_bsent += block
end
close(cli_sock)
print("[CLIENT] Transmitted 10^$(log10(cli_bsent))B of 10^$(exp)B\n")
put!(client_exited, cli_bsent)
end)
brcvd = take!(server_exited)
bsent = take!(client_exited)
close(server)
if brcvd != bsent
print("\t[ERROR] Received bytes ($(brcvd)) != sent bytes ($(bsent))\n")
else
print("OK\n")
end
end
# Run second test on a gigabyte of data
test_send(9)
# Utility function for test_bidirectional() that simultaneously transmits and
# receives 10^exp bits of data over s
@everywhere function xfer(s, exp)
@assert exp > 4
xfer_size = 10^exp
xfer_block = 10^(exp - 4)
bsent = 0
bread = 0
@sync begin
# Create an asynchronous task that can modify bread properly
recv_task = @task begin
while bread < xfer_size
data = read(s, UInt8, xfer_block)
@assert length(data) == xfer_block
bread += xfer_block
end
end
Base.sync_add(recv_task)
Base.enq_work(recv_task)
send_task = @task begin
# write in chunks of xfer_block
data = fill!(zeros(UInt8, xfer_block), Int8(65))
while bsent < xfer_size
write(s, data)
bsent += xfer_block
end
end
Base.sync_add(send_task)
Base.enq_work(send_task)
end
return (bsent, bread)
end
function test_bidirectional(exp)
print("Testing 10^$exp bytes of concurrent bidirectional transfers:\n")
(port, server) = listenany(8000)
# For both the server and the client, we will transfer/receive 10^exp bytes
server_started = RemoteChannel()
server_exited = RemoteChannel()
client_exited = RemoteChannel()
@async begin
print("\t\t\t[SERVER] Started on port $(port)\n")
put!(server_started, true)
server_sock = accept(server)
(bsent, bread) = xfer(server_sock, exp)
close(server_sock)
print("\t\t\t[SERVER] Transmitted 10^$(log10(bsent))B and received 10^$(log10(bread))B\n")
put!(server_exited, (bsent, bread))
end
@spawnat(2, begin
# Wait for the server
take!(server_started)
print("[CLIENT] Connecting to port $(port)\n")
client_sock = connect("localhost", port)
(bsent, bread) = xfer(client_sock, exp)
close(client_sock)
print("[CLIENT] Transmitted 10^$(log10(bsent))B and received 10^$(log10(bread))B\n")
put!(client_exited, (bsent,bread))
end)
(serv_bsent, serv_bread) = take!(server_exited)
(cli_bsent, cli_bread) = take!(client_exited)
close(server)
if serv_bsent != cli_bread || serv_bread != cli_bsent
print("\t[ERROR] Data was not faithfully transmitted!")
else
print("OK\n")
end
end
# Test 1GB of bidirectional data
test_bidirectional(9)