Невозможно загрузить DLL 'Microsoft.Quantum.Simulator.Runtime.dll' (CentOS 7) - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь заставить Microsoft Quantum Development Kit работать на компьютере с CentOS 7.Я следовал инструкциям для установки dotnet, и тривиальный dotnet Hello World работает.Я также установил Visual Studio из yum и установил Microsoft Quantum Development Kit для Visual Studio из проводника Visual Studio.

После клонирования их репозитория github.Я пытаюсь:

dotnet_vm: Teleportation$ cd ~/Quantum/Samples/Teleportation/
dotnet_vm: Teleportation$ scl enable rh-dotnet21 bash
dotnet_vm: Teleportation$ dotnet run
/home/user/Quantum/Microsoft.Quantum.Canon/Microsoft.Quantum.Canon.csproj : warning NU1603: Microsoft.Quantum.Canon depends on NETStandard.Library (>= 2.0.2-servicing-25519-03) but NETStandard.Library 2.0.2-servicing-25519-03 was not found. An approximate best match of NETStandard.Library 2.0.2 was resolved. [/home/user/Quantum/Samples/Teleportation/TeleportationSample.csproj]
/home/user/Quantum/Microsoft.Quantum.Canon/Microsoft.Quantum.Canon.csproj : warning NU1603: Microsoft.Quantum.Canon depends on NETStandard.Library (>= 2.0.2-servicing-25519-03) but NETStandard.Library 2.0.2-servicing-25519-03 was not found. An approximate best match of NETStandard.Library 2.0.2 was resolved.

Unhandled Exception: System.DllNotFoundException: Unable to load shared library 'Microsoft.Quantum.Simulator.Runtime.dll' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libMicrosoft.Quantum.Simulator.Runtime.dll: cannot open shared object file: No such file or directory
   at Microsoft.Quantum.Simulation.Simulators.QuantumSimulator.Init()
   at Microsoft.Quantum.Simulation.Simulators.QuantumSimulator..ctor(Boolean throwOnReleasingQubitsNotInZeroState, Nullable`1 randomNumberGeneratorSeed, Boolean disableBorrowing)
   at Microsoft.Quantum.Examples.Teleportation.Program.Main(String[] args) in /home/user/Quantum/Samples/Teleportation/Program.cs:line 13

Этот выглядит как та же ошибка.Я попробовал то, что я думал, было эквивалентным решением Linux:

cp ~/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/runtimes/linux-x64/native/Microsoft.Quantum.Simulator.Runtime.dll ~/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/lib/netstandard2.0/

Я все еще получаю ту же ошибку.Кроме того, у меня не включен набор инструкций AVX на моем компьютере (что может быть потенциальной проблемой?).

Например,

 grep flags /proc/cpuinfo 
flags       : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm nopl pni cx16 hypervisor lahf_lm abm
flags       : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm nopl pni cx16 hypervisor lahf_lm abm
dotnet_vm: Teleportation$ 

У меня нет опыта работы с Windows, и они не похожи на типичные библиотеки Linux (не .so или .a).

ВОПРОС: Какмне заставить это работать?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

После ответа El capi я посмотрел библиотеки, связанные с: например,

dotnet_vm: gcc-5.1.0$ ldd /home/user/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/lib/netstandard2.0/Microsoft.Quantum.Simulator.Runtime.dll
/home/user/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/lib/netstandard2.0/Microsoft.Quantum.Simulator.Runtime.dll: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/user/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/lib/netstandard2.0/Microsoft.Quantum.Simulator.Runtime.dll)
/home/user/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/lib/netstandard2.0/Microsoft.Quantum.Simulator.Runtime.dll: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/user/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/lib/netstandard2.0/Microsoft.Quantum.Simulator.Runtime.dll)
/home/user/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/lib/netstandard2.0/Microsoft.Quantum.Simulator.Runtime.dll: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/user/.nuget/packages/microsoft.quantum.development.kit/0.2.1809.701-preview/lib/netstandard2.0/Microsoft.Quantum.Simulator.Runtime.dll)
    linux-vdso.so.1 =>  (0x00007fff2f12b000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f1fb5fee000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f1fb5cec000)
    libgomp.so.1 => /lib64/libgomp.so.1 (0x00007f1fb5ac6000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f1fb56f9000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f1fb656a000)

Чтобы решить эту проблему с версиями в отношении GLIBCXX_3.4.21, я установил gcc-5.1.0 (и его зависимости),Затем запустите код:

dotnet_vm: Teleportation$ dotnet run
/home/user/Quantum/Microsoft.Quantum.Canon/Microsoft.Quantum.Canon.csproj : warning NU1603: Microsoft.Quantum.Canon depends on NETStandard.Library (>= 2.0.2-servicing-25519-03) but NETStandard.Library 2.0.2-servicing-25519-03 was not found. An approximate best match of NETStandard.Library 2.0.2 was resolved. [/home/user/Quantum/Samples/Teleportation/TeleportationSample.csproj]
/home/user/Quantum/Microsoft.Quantum.Canon/Microsoft.Quantum.Canon.csproj : warning NU1603: Microsoft.Quantum.Canon depends on NETStandard.Library (>= 2.0.2-servicing-25519-03) but NETStandard.Library 2.0.2-servicing-25519-03 was not found. An approximate best match of NETStandard.Library 2.0.2 was resolved.
Round 0:    Sent True,  got True.
Teleportation successful!!

Round 1:    Sent False, got False.
Teleportation successful!!

Round 2:    Sent True,  got True.
Teleportation successful!!

Round 3:    Sent False, got False.
Teleportation successful!!

Round 4:    Sent True,  got True.
Teleportation successful!!

Round 5:    Sent False, got False.
Teleportation successful!!

Round 6:    Sent True,  got True.
Teleportation successful!!

Round 7:    Sent False, got False.
Teleportation successful!!



Press Enter to continue...

Все заработало!

0 голосов
/ 22 сентября 2018

Microsoft.Quantum.Simulator.Runtime.dll - это обычная библиотека Linux (.so), она просто переименована, чтобы облегчить поддержку кроссплатформенности.

Это похоже на проблему, аналогичную той, которая вы связали , однако вам следует поискать ответ Ubuntu: используйте ldd, чтобы выяснить, какие есть зависимости, и установить все, что отсутствует.Как и в этом посте, проблема, скорее всего, заключается в том, что вам не хватает libgomp, но я не знаком с CentOS.

Если не включить AVX, это замедлит работу, особенно при работе с большим количеством кубитов, но вы все равно должны быть в состоянии бежать.

...