有没有人知道任何对公众开放且使用Hadoop/MapReduce框架的免费可访问集群?有很多关于如何使用MapReduce的教程,但是有没有办法在不使用我的本地单机并安装所需框架的情况下测试这些示例?
谢谢!
我有一个结构:
struct vertex
{
double a; double b;
}
struct polygon
{
int numofVertex;
vertex *v;
}
Run Code Online (Sandbox Code Playgroud)
如何使用MPI_Send在MPI中发送此嵌套结构?问题是该结构包含指针字段"v",因为MPI_Send崩溃.我已经尝试过MPI_Datatype来定义新的数据类型,它不起作用.我读到序列化是唯一的解决方案,但C不提供这样的实现.有什么建议如何解决这个问题?
假设我有一个C++程序具有过深的继承,如下所示:
using namespace std;
class AbstractParentGeneration0 {
private:
...
protected:
...
public:
virtual returnVal funcName(void) = 0;
};
class AbstractParentGeneration1: virtual public AbstractParentGeneration0 {
private:
...
protected:
...
public:
virtual returnVal funcName(void) = 0;
};
.
.
.
class AbstractParentGeneration999999999: virtual public AbstractParentGeneration999999998 {
private:
...
protected:
...
public:
virtual returnVal funcName(void) = 0;
};
class ChildGeneration: public AbstractParentGeneration999999999 {
private:
...
protected:
...
public:
returnVal funcName(void) { ... };
};
Run Code Online (Sandbox Code Playgroud)
假设程序的性质使得深度继承不能被压缩(假设它代表进化物种谱系或深度分类层次)
调用顶级抽象类时是不是存在堆栈溢出危险?
C++程序员使用哪些策略(除了"ulimit -s bytes"或折叠抽象层次结构)在系统边界内工作?
有没有办法通过RPC在多个主机系统中展平深层垂直继承层次结构?
有人设计自己的调用堆栈机制吗?
是否存在分布式网络/集群调用堆栈这样的问题?
假设我在Eclipse中创建了一个Java项目,它有3-10个类,其中一个有一个main(String [] args)方法,它启动整个程序并在命令行中获取4个参数.我们还要说这个项目在src/lib中有6-10个.jar文件需要运行.
如果我有ssh访问另一台计算机(两端是UNIX)并且我想运行这个程序,我该怎么做呢?
我问,因为我一直在做一些分布式计算项目,我需要在多台机器上运行我的程序,但我是一个完整的命令行菜鸟,我没有物理访问所有机器.
编辑:似乎我需要SCP文件结束.有人能告诉我使Java程序运行的特定命令吗?包括我应该从哪个目录运行它以及如何包含JAR依赖项.
我正在尝试为DS中的每个请求生成唯一的ID。我正在考虑连接请求接收的随机整数和时间戳。因为获取随机整数会导致负值,所以我决定打印十六进制表示形式:
String randomPrefix = Integer.toHexString(RANDOM.nextInt()).toUpperCase();
java.util.Date date = new java.util.Date();
String timestamp = Long.toHexString(date.getTime()).toUpperCase();
String id = randomPrefix.concat(timestamp);
Run Code Online (Sandbox Code Playgroud)
我不太擅长机率,但我想知道是否还有其他操作会导致此值较短且字符串长度同样低(甚至有更好的机会避免重复)。
像外行人一样,串联应该将复发的可能性提高X倍,而加法则要增加它的可能性(重复发生的可能性更高)。
请提出其他方法以使ID更简洁,更短(或确认是否正确)。
PS:请原谅我使用外行语言,请继续努力。:(
我的MPI经验表明,加速不会随着我们使用的节点数量线性增加(因为通信成本).我的经历与此类似:
.
今天一位发言者说:"神奇地(微笑),在某些情况下,我们可以获得比理想速度更快的速度!".
他的意思是理想情况下,当我们使用4个节点时,我们将获得4的加速.但在某些情况下,我们可以获得大于4的加速,有4个节点!该主题与MPI有关.
这是真的?如果是这样,有人可以提供一个简单的例子吗?或许他正在考虑在应用程序中添加多线程(他没时间,然后不得不离开,因此我们无法讨论)?
parallel-processing performance distributed distributed-computing mpi
执行手册(http://compss.bsc.es/releases/compss/latest/docs/COMPSs_User_Manual_App_Exec.pdf)中给出的示例应用程序增量时,运行时将被阻止,并且终端中不会显示任何错误消息.
OUTPUT:
$ runcompss increment.Increment 3 1 2 3
Using default location for project file: /opt/COMPSs/Runtime/configuration/xml/projects/project.xml
Using default location for resources file: /opt/COMPSs/Runtime/configuration/xml/resources/resources.xml
----------------- Executing increment.Increment --------------------------
WARNING: IT Properties file is null. Setting default values
[ API] - Deploying COMPSs Runtime v1.3
[ API] - Starting COMPSs Runtime v1.3
Initial counter values:
- Counter1 value is 1
- Counter2 value is 2
- Counter3 value is 3
Run Code Online (Sandbox Code Playgroud)
我怎么知道什么阻止了我的申请?
先感谢您
编辑: 检查$ HOME/.COMPSs/increment*/runtime.log所有任务似乎都被阻止:
grep "Blocked" runtime.log …Run Code Online (Sandbox Code Playgroud) 我正在设置一个分布式芹菜环境来对PDF文件进行OCR.我有大约3M PDF和OCR是CPU绑定的,所以我们的想法是创建一个服务器集群来处理OCR.
在我写任务的时候,我有这样的事情:
@app.task
def do_ocr(pk, file_path):
content = run_tesseract_command(file_path)
item = Document.objects.get(pk=pk)
item.content = ocr_content
item.save()
Run Code Online (Sandbox Code Playgroud)
问题是我最好的方法是file_path在分布式环境中完成工作.人们通常如何处理这个问题?现在我的所有文件都只是存放在我们的一台服务器上的一个简单目录中.
我试图在激活跟踪系统(extrae)的情况下运行COMPS.我第一次遇到安装问题但我解决了这个问题:
如何修复libpapi.so.*运行时不能打开共享对象文件(py)带跟踪的COMPS?
但是,现在我正面临一个新的PAPI问题.COMPS运行时似乎已正确加载但Extrae报告此错误:
Extrae: Error! Hardware counter PAPI_L3_TCM (0x80000008) cannot be added in set 1 (thread 0)
Extrae: Error! Hardware counter PAPI_FP_INS (0x80000034) cannot be added in set 1 (thread 0)
Extrae: Error! Hardware counter PAPI_SR_INS (0x80000036) cannot be added in set 2 (thread 0)
Extrae: Error! Hardware counter PAPI_BR_UCN (0x8000002a) cannot be added in set 2 (thread 0)
Extrae: Error! Hardware counter PAPI_BR_CN (0x8000002b) cannot be added in set 2 (thread 0)
Extrae: Error! Hardware counter PAPI_VEC_SP (0x80000069) cannot …Run Code Online (Sandbox Code Playgroud) 业务领域有五个高级有界上下文
此外,这些有界的上下文具有诸如文档的排序和传递之类的子上下文.尽管项目包含成千上万个类和数十个EJB,但大多数业务逻辑都存在于关系数据库视图和触发器中,原因是:所有业务事务中都涉及许多连接,联合和约束.换句话说,有界上下文之间存在复杂的依赖关系和约束网络,这限制了状态转移.通俗地说:业务规则非常复杂.
现在,如果我将这个monolith拆分为每个服务微服务架构的数据库,有界上下文是建议的服务边界,我将不得不用显式API调用实现所有业务逻辑.我最终会有数百个API实现所有这些愚蠢的小业务规则.由于性能是主要因素(我们现在使用很多努力来优化SQL),这是不可能的.其次,隔离的API可能是在这个不断发展的业务规则网络中维护的噩梦,因为数据库触发器实际上支持高内聚和干燥心态,透明地执行业务规则.
我得出结论微服务架构不适合这种类型的文档管理系统.我是正确的,还是从错误的角度接近这个想法?
database soa domain-driven-design distributed-computing microservices