-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tests failing on 32-bit Ubuntu 13.04 #3283
Comments
The isprime() function is failing when used with 64-bit ints on 32-bit machines. A proposed solution is to treat 64 bit integers as BigInt on 32-bit machines. The addition of the following lines should help
test/corelib.jl is failing because of the following code on 32-bit machines:
If the test in test/corelib.jl is for
|
I'm not a fan of the isprime fix – it's a bandaid. There isprime algorithm should be fixed instead. Unfortunately, I don't have access to a 32-bit machine to test on. The range containment issue also seems like it's hiding the symptom rather than fixing the issue: why is |
Couldn't you cross-compile the 32-bit version? I could also add a 32-bit Vagrant configuration. |
I could, but where am I going to run it? |
Lengths are Int, which is Int32 on 32-bit platforms. This includes ranges. |
Whatever the fixes, the 32 bit build should not be failing. I think these are reasonable to fix the build, and other issues can be opened for the real fixes. Or we could disable those tests. |
Yup, I noticed that len was 32 bit even for a 64 bit int Range1 object. |
This is basically the same problem as BigInt ranges. |
Wouldn't a 32-bit userspace be enough? Or are you on Mac right now? Then you might have to use a 32-bit VM (which gets back to the Vagrant comment--if @staticfloat has 32-bit dependencies in his PPA, you could just switch from the precise64 base box to the precise32 base box in the Vagrantfile.) |
True, using a VM would work (although I'd have to set one up). We don't, as far as I know, support generating a 32-bit Julia on 64-bit machines or vice versa, but I could be wrong about that. @vtjnash and @loladiro have managed some crazy stuff. |
Ah, I expected such a cross-compile was possible--at any rate, this is off the issue topic. |
I can confirm this happens on my 32-bit VM, using the builds from my nightlies PPA. Linux is wonderful. :) You can |
I'll prepare a 32-bit EC2 AMI with dev env and julia sources. It can be used for such situations in the future. |
Great, I'm compiling a kernel that hopefully has AVX disabled. If it works, we can include it with your AMI for ease of use, so others don't have to patch their own kernel. |
Compiling large sets of source really does take a while on these machines. It's been going for 8 hours so far. |
Are you using a free micro instance? It will probably take a really long time since they are heavily throttled and fit only for periodically bursty compute scenarios - definitely not for compiling source! |
Yeap. :D I don't mind waiting, this doesn't seem to be a time-critical issue. |
It is worth checking if openblas has an environment variable to change the target arch at runtime. If not, we can perhaps request @xianyi to support it. |
This was my initial idea, however I am pretty certain this isn't the solution we're looking for. Any other piece of software we want to run that may use AVX will encounter the same problem; it's really not a bug in OpenBLAS, it's a bug in the EC2 virtualization environment, and can be patched in the kernel. |
Just so that there is no confusion - the AVX discussion above relates to #3263 and is unrelated to this issue, which is purely a Julia issue. |
whoops, I totally mixed two issues up. Thanks @amitmurthy! |
ami-8bdda8e2 is a public 32-bit ubuntu 13.04 AMI with Julia dev / sources installed. userid : ubuntu |
TODO: we should really have div, rem and mod operations for 128-bit integers on 32-bit machines that don't resort to using BigInts, but this works and maybe LLVM will actually implement these intrinsics at some point.
Julia version:
output of runtests.jl:
The text was updated successfully, but these errors were encountered: