Constraints:
My application requires SSE4.2 instruction set.
I am using packer.io to provision my Windows Azure VM (OpenLogic 6.5 OS.)
Windows Azure returns an AMD-processor-backed-VM about 15% of the time. The rest of the time - they are Intel-processor-based. AMD processors do not support SSE4.2, but they do support SSE4a. So, my application is terminated with SIGILL on AMD processors.
Questions:
Can I request specific architecture (Intel CPU) when Packer
provisions a VM? I know that instance types >= A8 come only with Intel processors, but they are more expensive, and I would not want to use them for development.
If Packer cannot do it, what are the other options
(Powershell, ect...) that would give me this functionality?
Thank you.
Answering my own question. Azure does not provide a way to request processor type. The only way to ensure Intel processor is to not use A-series machines (as confirmed by a MSFT representative.) Thus, no tool can do it.
As we know, in the libpthread on Linux the mutex has different size in 32-bit mode and 64-bit mode. It is not possible to share a mutex in shared-memory between 32-bit apps and 64-bit apps running on the same Linux box. (If i was wrong about this, please correct me.)
We are trying to implement our own mutex library using futex in Linux to support 32-bit and 64-bit apps at the same time. I.e this mutex will have identical size and structure regardless the library is compiled into 32-bit or 64-bit.
Further, we wanted to support "robust mutex" as well and we think there is a problem here. AFAIK, glibc/libpthread creates 'robust_list' for each pthread and maintain the robust_list for every pthread mutex. This works together with the Kernel robust list functions to support robust mutex for the apps.
My question is: is it possible to attach my own mutex to the same 'robust_list' maintained by glibc/libpthread? If not, do I have to use a different robust list and give the new list to the Kernel? I suspect if I roll my own list, the app cannot use -pthread anymore. I.e. my own mutex code won't be able to co-exist with glibc pthread for the apps.
any comments or advices are appreciated.
thanks.
I am playing with window azure SDK and would like to set up my instance as 32 bit system, there are so many option available in "configure OS", so anyone know that by which combination I can set up 32 bit system on Window Azure?
Microsoft does support 32 bits OS in Azure, just as long as you upload the image yourself and provides no support for it. Which makes sense. Details on the page Support for 32-bit operating systems in Azure virtual machines:
Microsoft Azure now allows users to bring in their 32-bit Windows Operating systems over to Azure
You can't: currently Azure is only configured with 64-bit versions of Windows Server. I would expect this will not change.
If you need a 32-bit operating system you may be better looking for alternative ways to host your application.
Is there any reason to choose a 64bit debian over a 32bit debian instance on Amazon EC2?
64bit Apps simply take more memory (which is crucial & has a high premium in VPS & Cloud servers).
Are there any other things that I should consider in making this choice?
64-bit apps will use the 64-bit instruction set which carries a great deal more optimisations than default x86 packages Which can result in better performance as compared to its x86 counterpart.
I am pricing a new software development machine and looking at the dell precision series.
When I get to this screen:
http://www.dell.com/content/topics/reftopic.aspx/pub/products/precn_kat?c=us&cs=555&l=en&s=biz&~section=T7400
The first choice is: Buy a Precision WorkStation T7400 32bit Now!
and the second choice is: Buy a Precision WorkStation T7400 64bit Now!
am I really at that point just deciding which software I want installed? or is there actually a different chipset depending on the choice.
I don't want to limit my options down the road by picking the wrong one - I can always upgrade the software - but I don't want to have to replace hardware.
BTW: This will be for SD of a Microsoft stack, asp.net, vs 2008, sql server etc and I would like to start using virtualization (probably from MS) with this machine purchase.
Both options give you the same choice of processors, they are all 64-bit capable. It's just a matter of whether a 32-bit or 64-bit version of the OS is preinstalled on it.
I would go with the 64-bit option simply because, in my experience, you can easily run both 32-bit and 64-bit VMs on a 64-bit platform, but are limited to 32-bit VMs on a 32-bit platform.
64-Bit, but just not XP64 (Which Dell offers as a downgrade). Driver situation is quite awful, and there are some incompatibilities in Software. If you need/want to stick to XP, go 32-Bit, if you want to use Vista or Windows Server 2008, 64-Bit is fine.
The only difference is the operating system anyway, so you can freely switch between installing 32 or 64 Bit Windows, you may just need to buy another License.
100% 64bit. RAM is cheap and you'll eventually want to use more than 4GB of it, especially if you've going to be running virtual machines.
64bit all the way. Vista64 is mature at this point, I haven't run into any issues. If you need 32bit for any older peripherals you might have, install XP32 as a VM.
As far as I know you can't really buy a 32-bit PC nowadays. I think the OS is the only different between the 32bit and 64bit version.
For .NET development it doesn't matter whether you're using a 64-bit OS or not. However 64-bit SQL Server maybe running faster.
And you'll also need more than 4GB RAM (especially if you run virtual machines), so I don't really see any reason to choose a 32-bit OS over a 64-bit one.
I would go for 64bit with 64bit Operating System. Only problem i encountered so far is that 32bit apps cannot access 64-dlls -> For example the context menu of TotalCommander won't show 64bit apps (e.g subversion) which might be inconvenient for development.
It can be difficult to get 64bit drivers for exotic or very new hardware, so if that's a concern for you, you might want to stick to the 32bit OS.